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

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

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

一、图像清晰度增强介绍

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

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

二、开发流程

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

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

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

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

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

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

三、请求参数说明

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

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

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

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

四、输出参数说明

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

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

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

五、开发实践

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

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

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

1.安装依赖库TencentCloudSDK.Tiia

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

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

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

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

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

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

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

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

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

3.代码

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

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

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

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

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

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

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

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

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

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

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

标签:
  • 热门焦点
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • 8月总票房已突破10亿!《封神》第一:口碑已经成了

    8月5日消息,据灯塔专业版数据,截至8月5日9时35分,8月总票房(含预售)已突破10亿。其中,《封神》以大比分的优势领先。根据官方消息,目前该片总票房已经超过14.
  • 如何通过Python线程池实现异步编程?

    线程池的概念和基本原理线程池是一种并发处理机制,它可以在程序启动时创建一组线程,并将它们置于等待任务的状态。当任务到达时,线程池中的某个线程会被唤醒并执行任务,执行完任
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页&ldquo;充值中心&rdquo;入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 三星获批量产iPhone 15全系屏幕:苹果史上最惊艳直屏

    按照惯例,苹果将继续在今年9月举办一年一度的秋季新品发布会,有传言称发布会将于9月12日举行,届时全新的iPhone 15系列将正式与大家见面,不出意外的话
  • 滴滴违法违规被罚80.26亿 共存在16项违法事实

    滴滴违法违规被罚80.26亿 存在16项违法事实开始于2121年7月,历经一年时间,网络安全审查办公室对“滴滴出行”网络安全审查终于有了一个暂时的结束。据“网信
  • 英特尔Xe-HP项目终止,将专注Xe-HPC/HPG系列显卡

    据10 月 31 日消息报道,英特尔高级副总裁兼加速计算系统和图形事业部总经理 表示,Xe-HP“ Arctic Sound” 系列服务器 GPU 已经应用于 oneAPI devcloud 云服
  • 微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
Top