当前位置:首页 > 科技  > 软件

C#实战:图像清晰度增强介绍和案例实践

来源: 责编: 时间:2024-04-30 08:43:40 359观看
导读一、图像清晰度增强介绍基于腾讯云深度学习等人工智能技术,消除图片因有损压缩导致的噪声,改善因使用滤镜、拍摄失焦等导致的图像模糊问题,让图片的边缘和细节更加清晰自然。二、开发流程首先登录腾讯云平台开通图片处理

一、图像清晰度增强介绍

PLK28资讯网——每日最新资讯28at.com

基于腾讯云深度学习等人工智能技术,消除图片因有损压缩导致的噪声,改善因使用滤镜、拍摄失焦等导致的图像模糊问题,让图片的边缘和细节更加清晰自然。PLK28资讯网——每日最新资讯28at.com

二、开发流程

首先登录腾讯云平台开通图片处理服务 官网:https://cloud.tencent.com/product/imageprocessPLK28资讯网——每日最新资讯28at.com

申请开发密钥PLK28资讯网——每日最新资讯28at.com

下载编程语言对应的SDKPLK28资讯网——每日最新资讯28at.com

开发工具创建项目PLK28资讯网——每日最新资讯28at.com

引用腾讯图像处理库PLK28资讯网——每日最新资讯28at.com

根据业务编写代码PLK28资讯网——每日最新资讯28at.com

三、请求参数说明

● Region:资源地域,必填,表示操作的资源所属的地域,比如%20ap-shanghai%20ap-beijing%20ap-shenzhen%20等。PLK28资讯网——每日最新资讯28at.com

PLK28资讯网——每日最新资讯28at.com

● ImageUrl:图片URL地址参数。图片格式:PNG、JPG、JPEG。 图片大小:所下载图片经Base64编码后不超过4M。图片下载时间不超过3秒。PLK28资讯网——每日最新资讯28at.com

● ImageBase64:支持PNG、JPG、JPEG、BMP,不支持%20GIF%20图片。图片经过Base64编码的内容。最大不超过4M。与ImageUrl同时存在时优先使用ImageUrl字段。注意:图片需要Base64编码,并且要去掉编码头部。PLK28资讯网——每日最新资讯28at.com

四、输出参数说明

● EnhancedImage:增强后图片的base64编码。PLK28资讯网——每日最新资讯28at.com

示例值:/9j/4AAQSkZJRgABAQAAAQABA…PLK28资讯网——每日最新资讯28at.com

● RequestId:唯一请求%20ID,每次请求都会返回。排查异常问题时需要提供该次请求的%20RequestId。PLK28资讯网——每日最新资讯28at.com

五、开发实践

这里采用SDK+C#语言的方式写一个WinForm程序。具体操作如下:PLK28资讯网——每日最新资讯28at.com

首先新建一个WinForm控制台程序EnhanceImageDemo,框架选择NetFramework4.5.2。PLK28资讯网——每日最新资讯28at.com

PLK28资讯网——每日最新资讯28at.com

1.安装依赖库TencentCloudSDK.Tiia

通过命令行:PLK28资讯网——每日最新资讯28at.com

dotnet%20add%20package%20TencentCloudSDK.Tiia

通过Nuget 包管理器方式安装。PLK28资讯网——每日最新资讯28at.com

打开nuget包管理器,搜索%20TencentCloudSDK.Tiia,安装最新稳定版本%203.0.957。PLK28资讯网——每日最新资讯28at.com

PLK28资讯网——每日最新资讯28at.com

2.增加腾讯API调用配置项

直接在app.config%20文件添加,完整的内容如下:PLK28资讯网——每日最新资讯28at.com

<?xml%20versinotallow="1.0"%20encoding="utf-8"%20?><configuration>%20%20%20%20<startup>%20%20%20%20%20%20%20%20%20<supportedRuntime%20versinotallow="v4.0"%20sku=".NETFramework,Versinotallow=v4.5.2"%20/>%20%20%20%20</startup> <appSettings> <!--SecretId--> <add%20key="SecretId"%20value="xxxxxx"/> <!--SecretKey--> <add%20key="SecretKey"%20value="xxxxxx"/> <!--地区选择ap-shanghai%20ap-beijing%20ap-shenzhen%20等--> <add%20key="Region"%20value="ap-shanghai"/> <!--图片输出目录--> <add%20key="OutPath"%20value="D:/Image/"/></appSettings></configuration>

注意:开发密钥需要开发者自己申请填入配置文件。PLK28资讯网——每日最新资讯28at.com

PLK28资讯网——每日最新资讯28at.com

3.代码

主要实现了网络图片URL调用图像增强处理方法生成Base64字符串,然后转换为png图片,并直接调用操作系统默认的打开图片工具直接打开图片。PLK28资讯网——每日最新资讯28at.com

using%20System;using%20System.Collections.Generic;using%20System.ComponentModel;using%20System.Data;using%20System.Diagnostics;using%20System.Drawing;using%20System.IO;using%20System.Linq;using%20System.Text;using%20System.Threading.Tasks;using%20System.Windows.Forms;using%20TencentCloud.Common;using%20TencentCloud.Common.Profile;using%20TencentCloud.Tiia.V20190529;using%20TencentCloud.Tiia.V20190529.Models;using%20System.Configuration;namespace%20EnhanceImageDemo{%20%20%20%20public%20partial%20class%20Form1%20:%20Form%20%20%20%20{%20%20%20%20%20%20%20%20public%20Form1()%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20InitializeComponent();%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20///%20<summary>%20%20%20%20%20%20%20%20///%20图片增强方法%20%20%20%20%20%20%20%20///%20</summary>%20%20%20%20%20%20%20%20private%20void%20EnhanceImage()%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20string%20url%20=%20textBox1.Text.Trim();%20%20%20%20%20%20%20%20%20%20%20%20if%20(!Uri.IsWellFormedUriString(url,%20UriKind.Absolute))%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20MessageBox.Show("请输入正确的图片URL");%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20调用腾讯云接口的参数说明%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%20secretId%20=%20ConfigurationManager.AppSettings["SecretId"];%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%20secretKey%20=%20ConfigurationManager.AppSettings["SecretKey"];%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20string%20region%20=%20ConfigurationManager.AppSettings["Region"];%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20实例化一个认证对象,入参需要传入腾讯云账户%20SecretId%20和%20SecretKey,需注意密钥对的保密%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20密钥可前往官网控制台%20https://console.cloud.tencent.com/cam/capi%20进行获取%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Credential%20cred%20=%20new%20Credential%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SecretId%20=%20secretId,%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SecretKey%20=%20secretKey%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20};%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20实例化一个client选项,可选的,没有特殊需求可以跳过%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ClientProfile%20clientProfile%20=%20new%20ClientProfile();%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20实例化一个http选项,可选的,没有特殊需求可以跳过%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20HttpProfile%20httpProfile%20=%20new%20HttpProfile();%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20httpProfile.Endpoint%20=%20("tiia.tencentcloudapi.com");%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20clientProfile.HttpProfile%20=%20httpProfile;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20实例化要请求产品的client对象,clientProfile是可选的%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20TiiaClient%20client%20=%20new%20TiiaClient(cred,%20region,%20clientProfile);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20实例化一个请求对象,每个接口都会对应一个request对象%20传递参数,支持网络图片和图片经过Base64编码的内容%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20EnhanceImageRequest%20req%20=%20new%20EnhanceImageRequest();%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//图片URL地址参数。图片格式:PNG、JPG、JPEG。%20图片大小:所下载图片经Base64编码后不超过4M。图片下载时间不超过3秒。%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20req.ImageUrl%20=%20url;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//ImageBase64%20参数%20支持PNG、JPG、JPEG、BMP,不支持%20GIF%20图片。图片经过Base64编码的内容。最大不超过4M。与ImageUrl同时存在时优先使用ImageUrl字段。注意:图片需要Base64编码,并且要去掉编码头部。%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20req.ImageBase64%20=%20"无";%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20返回的resp是一个EnhanceImageResponse的实例,与请求对象对应%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20EnhanceImageResponse%20resp%20=%20client.EnhanceImageSync(req);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20convertToImage(resp.EnhancedImage);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20catch%20(Exception%20e)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20MessageBox.Show(e.ToString());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20///%20<summary>%20%20%20%20%20%20%20%20///%20base64字符串转换为png%20%20%20%20%20%20%20%20///%20</summary>%20%20%20%20%20%20%20%20///%20<param%20name="base64String"></param>%20%20%20%20%20%20%20%20private%20void%20convertToImage(string%20base64String)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20{%20%20%20%20%20%20%20%20%20%20%20%20//%20把Base64%20字符串解码为字节数组%20%20%20%20%20%20%20%20%20%20%20%20byte[]%20imageBytes%20=%20Convert.FromBase64String(base64String);%20%20%20%20%20%20%20%20%20%20%20%20//%20配置文件图片图片输出目录%20%20%20%20%20%20%20%20%20%20%20%20string%20path%20=%20ConfigurationManager.AppSettings["OutPath"];%20%20%20%20%20%20%20%20%20%20%20%20string%20fileName%20=%20path%20+%20DateTime.Now.ToString("yyyyMMddHHmmss")%20+%20".png"; // 将字节数组保存为图片文件 using (MemoryStream ms = new MemoryStream(imageBytes)) { Image image = Image.FromStream(ms); // 保存图片 image.Save(fileName, System.Drawing.Imaging.ImageFormat.Png); // 调用系统默认程序打开图片文件 Process.Start(fileName); } } /// <summary> /// 按钮点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOk_Click(object sender, EventArgs e) { EnhanceImage(); } }}

4.运行效果

查看调用接口成功的调试数据。PLK28资讯网——每日最新资讯28at.com

PLK28资讯网——每日最新资讯28at.com

页面运行窗体,主要是图片网络地址输入和转换按钮。PLK28资讯网——每日最新资讯28at.com

PLK28资讯网——每日最新资讯28at.com

转换之后成功的效果如下图:PLK28资讯网——每日最新资讯28at.com

PLK28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-86687-0.htmlC#实战:图像清晰度增强介绍和案例实践

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 太优雅了!Rust 200 行代码实现表达式解析

下一篇: 使用缓存方法大幅提升Spring Boot性能

标签:
  • 热门焦点
  • Redmi Pad评测:红米充满野心的一次尝试

    从Note系列到K系列,从蓝牙耳机到笔记本电脑,红米不知不觉之间也已经形成了自己颇有竞争力的产品体系,在中端和次旗舰市场上甚至要比小米新机的表现来得更好,正所谓“大丈夫生居
  • 消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    8月5日消息,迪士尼确实有点忙,忙着将不少动画改成真人版,继《美人鱼》后,真人版《白雪公主》、《魔发奇缘》也在路上了。据外媒消息称,迪士尼将打造真人版
  • K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • 如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 三星获批量产iPhone 15全系屏幕:苹果史上最惊艳直屏

    按照惯例,苹果将继续在今年9月举办一年一度的秋季新品发布会,有传言称发布会将于9月12日举行,届时全新的iPhone 15系列将正式与大家见面,不出意外的话
  • iQOO 11S评测:行业唯一的200W标准版旗舰

    【Techweb评测】去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,该机不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞
  • 2299元起!iQOO Pad开启预售:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其搭载了天玑
  • 上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
Top