當前位置 主頁 > 網站技術 > 代碼類 > 最大化 縮小

    C#使用OpenCv圖像批處理并改變圖片大小并且重命名

    欄目:代碼類 時間:2020-02-05 15:13

    添加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, 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], write_path, i + ".png", 200, 300);
          }
          Console.ReadKey();
        }
    
        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, 0);
          Cv2.ImWrite(write_path+"\\"+ filename, img2);
        }
      }
    
      
    }

    以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持IIS7站長之家。

    下一篇:沒有了
教我怎样炒股