C#使用OpenCv影象批處理並改變圖片大小並且重新命名
阿新 • • 發佈:2020-02-06
新增NuGet包
選擇最新版就好了
安裝完成後右鍵專案重新生成方案
使用OpenCvSharp.CPlusPlus名稱空間
using OpenCvSharp.CPlusPlus;
寫一個函式用來改變圖片大小並且重新命名
read_path是儲存圖片的資料夾的路徑,write_path是改變後圖片儲存的資料夾路徑,filename是圖片重新命名,width和height分別為圖片修改後的寬和高
public static void ResizeImg(String read_path,String write_path,String filename,double width,double height) { Mat img1 = new Mat(read_path); Mat img2 = img1; OpenCvSharp.CPlusPlus.Size size = new OpenCvSharp.CPlusPlus.Size(width,height); Cv2.Resize(img1,img2,size,0); Cv2.ImWrite(write_path+"\\"+ filename,img2); }
在Main函式中使用該函式
static void Main(string[] args) { string dir_path = @"G:\TestImg";//讀取路徑 String write_path = "G:\\TestImg2";//儲存路徑 String[] filenames=Directory.GetFiles(dir_path); for (int i = 0; i < filenames.Length; i++) { ResizeImg(filenames[i],write_path,i + ".png",200,300); } Console.ReadKey(); }
執行結果
完整程式碼
using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using OpenCvSharp; using OpenCvSharp.CPlusPlus; using System.Runtime.InteropServices; using System.IO; namespace ResizeTest { class Program { static void Main(string[] args) { string dir_path = @"G:\TestImg";//讀取路徑 String write_path = "G:\\TestImg2";//儲存路徑 String[] filenames=Directory.GetFiles(dir_path); for (int i = 0; i < filenames.Length; i++) { ResizeImg(filenames[i],300); } Console.ReadKey(); } public static void ResizeImg(String read_path,img2); } } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。