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

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

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

一、图像清晰度增强介绍

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

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

二、开发流程

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

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

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

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

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

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

三、请求参数说明

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

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

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

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

四、输出参数说明

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

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

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

五、开发实践

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

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

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

1.安装依赖库TencentCloudSDK.Tiia

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

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

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

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

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

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

直接在app.config%20文件添加,完整的内容如下:AiO28资讯网——每日最新资讯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>

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

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

3.代码

主要实现了网络图片URL调用图像增强处理方法生成Base64字符串,然后转换为png图片,并直接调用操作系统默认的打开图片工具直接打开图片。AiO28资讯网——每日最新资讯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.运行效果

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

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

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
Top