使用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 獲取圖像位深度




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM