使用C#+EmguCV處理圖像入門(圖像讀取_顯示_保存)二
上個隨筆已經介紹EmguCV的一些常用庫和程序安裝以及環境變量的配置,這次寫的是如何使用這個類庫對圖像進行操作。
EmguCV圖像處理系統組成(個人見解):
圖像的基本操作:
貼個代碼:
using Emgu.CV; //使用命名空間 using Emgu.CV.Structure; using Emgu.CV.CvEnum; using Emgu.Util; static void Main(string[] args) { Mat srcImg = CvInvoke.Imread("1.jpg"); //讀取圖片 CvInvoke.NamedWindow("img", NamedWindowType.AutoSize); //創建窗口 CvInvoke.Imshow("img", srcImg); //顯示圖片 CvInvoke.Imwrite("1.bmp", srcImg); //保存結果圖片 CvInvoke.WaitKey(0); //暫停按鍵等待 }
函數解析:
①命名空間(必須的):
using Emgu.CV ---封裝了OpenCV基本圖像處理函數,在CvInvoke類中
using Emgu.CV.CvEnum ---OpenCV枚舉類型,包含一些枚舉類型宏定義
②Imread()函數:
1)第一個參數,需要填入圖片路徑名,支持如下格式:
Windows位圖: *.bmp, *.dib
JPEG文件: *.jpeg, *.jpg, *.jpe
JPEG2000文件: *.jp2
PNG圖片: *.png
便攜文件格式: *.pbm, *.pgm, *.ppm
Sun rasters光柵文件: *.sr, *.ras
TIFF文件: *.tiff, *.tif
2)第二個參數,指定加載圖像的顏色類型,
默認為ImreadModes.Color=1:
③NamedWindow()函數:
1)第一個參數,設置作為標識的窗口名稱
2)第二個參數,窗口顯示方式,取值如下:
Normal:正常大小顯示,用戶可以改變窗口大小
Autosize: 根據圖像大小自動調整,用戶不能手動改變窗口大小
Opengl: 支持openGL
④Imshow()
1)第一個參數,設置需要顯示的窗口名稱
2)第二個參數,填寫需要顯示的圖像
註:函數中出現InputArray/ OutputArray可先當做Mat類型
⑤Imwrite()函數:
1)第一個參數,設置保存的文件名,需填寫後綴,如"1.bmp"
2)第二個參數,要保存的Mat類型圖像數據
3)第三個參數,表示特定格式保存的參數編碼,一般采用默認值不填寫
⑥WaitKey()函數:
1)第一個參數,如果delay>0, 表示等待delay毫秒之後結束
如果delay=0, 表示無限等待,直到有按鍵按下結束
2)返回值為對應按下按鍵的ASCII碼值,如Esc的ASCII碼為27
介紹一下ASCll表:
還有一些常用的方法:
1).IsEmpty 判斷圖像是否為空
2).Rows 獲取圖像行數(高度)
3).Cols 獲取圖像列數(長度)
4).NumberOfChannels 獲取圖像通道數
5).Depth 獲取圖像位深度
使用C#+EmguCV處理圖像入門(圖像讀取_顯示_保存)二