1. 程式人生 > 程式設計 >C#使用OpenCv影象批處理並改變圖片大小並且重新命名

C#使用OpenCv影象批處理並改變圖片大小並且重新命名

新增NuGet包

C#使用OpenCv影象批處理並改變圖片大小並且重新命名

選擇最新版就好了

C#使用OpenCv影象批處理並改變圖片大小並且重新命名

安裝完成後右鍵專案重新生成方案

使用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();
    }

執行結果

C#使用OpenCv影象批處理並改變圖片大小並且重新命名

C#使用OpenCv影象批處理並改變圖片大小並且重新命名

完整程式碼

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);
    }
  }

  
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。