首先介紹一下EmguCV 。 EmguCV a是.NET 平臺下對OpenCV 圖像處理庫的封裝。也就是OpenCV的.NET 版。它運行在.NET 兼容的編程語言下調用OpenCV 的函數,如C#、VB、VC++、IronPython 等。這個封裝庫可以在Mono 下編譯和在Linux / Mac OS X 上運行。 接着簡要介紹一下EmguCV的安裝步驟: 1、首先保證你的電腦已經裝好了openCV,並且保證環境變量已經設置好。具體參照OpenCV官方中文網站,寫得很清楚。 2、下載EmguCV壓縮包,其實就是幾個可以在Visual Studio2005/2008中引用OpenCV的函數的dll庫。我下的是1.50版,“Emgu.CV.Windows.Binary-1.5.0.0.zip”。解壓該壓縮包,並把其DLL拷貝在OpenCV安裝目錄下的Bin文件夾裏。 3、新建一個c#窗體應用程序,添加Bin目錄下“Emgu.CV.dll”,“Emgu.Util.dll”等DLL的引用,還有些窗體的控件,主要是將 Emgu.CV.UI.dll 加入工具箱中,加入後會出現 ImageBox、HistogramCtrl。 4、然後,再程序的開頭中加上 using Emgu.CV; using Emgu.Util;等命名空間之後就可以用EmguCV中所有的庫函數了。 然後說說幾個使用EmguCV的基礎問題及要注意的地方: 1、在.net中使用OpenCv和EmguCv時,必須在三者支持的圖像格式之間進行轉換。.net中用Bitmap類來承載圖像,OpenCv中用IplImage指針來承載圖像,EmguCv中用Image<TColor,TDepth>來承載圖像。 讀入圖像的方法有幾種,在OpenCV中,可以使用: IntPtr srcImage;//IntPtr代替IplImage* 在EmguCV中,建議使用Image類來實現讀入操作,寫法如下 //讀入一張BGR圖像,要將lena.jpg放入DEBUG目錄下。 Image<Bgr, byte> img = new Image<Bgr, byte>("lena.jpg"); //ToBitmap()將IImage格式轉換爲Bitmap格式,便能爲PictureBox所用了。 pictureBox1.Image = img.ToBitmap();或者pictureBox1.Image=img.Bitmap; Image格式還可以轉換成IntPtr,如: srcImage = img.Ptr; Image類實在功能強大,還有封裝了很多常用的圖像處理的函數。 2、圖片的數據處理 可以使用c++中OpenCV的指針訪問的辦法,但是在c#.net的環境下,是不安全代碼,要加上unsafe關鍵字 unsafe } 建議使用EmguCV的寫法 //對Image<Bgr,byte>的第y行第x列進行讀取和寫入操作。 Bgr color=img[y,x]; img[y,x]=color; Bgr格式的數據可以通過Bgr.Blue,Bgr.Green,Bgr.Red訪問,Gray格式的數據可以通過Gray.intensity訪問,所有數據都是可以讀寫的。 3、判斷一個視頻是否讀到文件尾,不能用null,要用一個爲空類型的IntPtr,就是IntPtr eof = new IntPtr(),看其是否與eof相等。 |
C#.net 環境下使用OpenCV(一) 轉
C#.net 環境下使用OpenCV(一) 轉
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.