基于騰訊云深度學習等人工智能技術,消除圖片因有損壓縮導致的噪聲,改善因使用濾鏡、拍攝失焦等導致的圖像模糊問題,讓圖片的邊緣和細節更加清晰自然。
首先登錄騰訊云平臺開通圖片處理服務 官網:https://cloud.tencent.com/product/imageprocess
申請開發密鑰
下載編程語言對應的SDK
開發工具創建項目
引用騰訊圖像處理庫
根據業務編寫代碼
● Region:資源地域,必填,表示操作的資源所屬的地域,比如%20ap-shanghai%20ap-beijing%20ap-shenzhen%20等。
● ImageUrl:圖片URL地址參數。圖片格式:PNG、JPG、JPEG。 圖片大小:所下載圖片經Base64編碼后不超過4M。圖片下載時間不超過3秒。
● ImageBase64:支持PNG、JPG、JPEG、BMP,不支持%20GIF%20圖片。圖片經過Base64編碼的內容。最大不超過4M。與ImageUrl同時存在時優先使用ImageUrl字段。注意:圖片需要Base64編碼,并且要去掉編碼頭部。
● EnhancedImage:增強后圖片的base64編碼。
示例值:/9j/4AAQSkZJRgABAQAAAQABA…
● RequestId:唯一請求%20ID,每次請求都會返回。排查異常問題時需要提供該次請求的%20RequestId。
這里采用SDK+C#語言的方式寫一個WinForm程序。具體操作如下:
首先新建一個WinForm控制臺程序EnhanceImageDemo,框架選擇NetFramework4.5.2。
通過命令行:
dotnet%20add%20package%20TencentCloudSDK.Tiia
通過Nuget 包管理器方式安裝。
打開nuget包管理器,搜索%20TencentCloudSDK.Tiia,安裝最新穩定版本%203.0.957。
直接在app.config%20文件添加,完整的內容如下:
<?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>
注意:開發密鑰需要開發者自己申請填入配置文件。
主要實現了網絡圖片URL調用圖像增強處理方法生成Base64字符串,然后轉換為png圖片,并直接調用操作系統默認的打開圖片工具直接打開圖片。
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(); } }}
查看調用接口成功的調試數據。
頁面運行窗體,主要是圖片網絡地址輸入和轉換按鈕。
轉換之后成功的效果如下圖:
本文鏈接:http://www.tebozhan.com/showinfo-26-86687-0.htmlC#實戰:圖像清晰度增強介紹和案例實踐
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com