1. 程式人生 > >使用C#+EmguCV處理圖像入門(圖像讀取_顯示_保存)二

使用C#+EmguCV處理圖像入門(圖像讀取_顯示_保存)二

des 顯示圖片 函數 圖像 esc 第一個 出現 ron pgm

上個隨筆已經介紹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處理圖像入門(圖像讀取_顯示_保存)二