亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

C#.net 環(huán)境下使用OpenCV(一)

系統(tǒng) 3959 0
首先介紹一下EmguCV 。

EmguCV a是.NET 平臺(tái)下對(duì)OpenCV 圖像處理庫(kù)的封裝。也就是OpenCV的.NET 版。它運(yùn)行在.NET 兼容的編程語(yǔ)言下調(diào)用OpenCV 的函數(shù),如C#、VB、VC++、IronPython 等。這個(gè)封裝庫(kù)可以在Mono 下編譯和在Linux / Mac OS X 上運(yùn)行。

?

接著簡(jiǎn)要介紹一下EmguCV的安裝步驟:

1、首先保證你的電腦已經(jīng)裝好了openCV,并且保證環(huán)境變量已經(jīng)設(shè)置好。具體參照OpenCV官方中文網(wǎng)站,寫(xiě)得很清楚。

2、下載EmguCV壓縮包,其實(shí)就是幾個(gè)可以在Visual Studio2005/2008中引用OpenCV的函數(shù)的dll庫(kù)。我下的是1.50版,“Emgu.CV.Windows.Binary-1.5.0.0.zip”。解壓該壓縮包,并把其DLL拷貝在OpenCV安裝目錄下的Bin文件夾里。

3、新建一個(gè)c#窗體應(yīng)用程序,添加Bin目錄下“Emgu.CV.dll”,“Emgu.Util.dll”等DLL的引用,還有些窗體的控件,主要是將 Emgu.CV.UI.dll 加入工具箱中,加入後會(huì)出現(xiàn) ImageBox、HistogramCtrl。

4、然后,再程序的開(kāi)頭中加上 using Emgu.CV; using Emgu.Util;等命名空間之后就可以用EmguCV中所有的庫(kù)函數(shù)了。

?

然后說(shuō)說(shuō)幾個(gè)使用EmguCV的基礎(chǔ)問(wèn)題及要注意的地方:

1、在.net中使用OpenCv和EmguCv時(shí),必須在三者支持的圖像格式之間進(jìn)行轉(zhuǎn)換。.net中用Bitmap類來(lái)承載圖像,OpenCv中用IplImage指針來(lái)承載圖像,EmguCv中用Image<TColor,TDepth>來(lái)承載圖像。

讀入圖像的方法有幾種,在OpenCV中,可以使用:

IntPtr srcImage;//IntPtr代替IplImage*
srcImage = CvInvoke.cvLoadImage("lena.jpg",Emgu.CV.CvEnum.IPL_DEPTH.IPL_DEPTH_8U,1);

在EmguCV中,建議使用Image類來(lái)實(shí)現(xiàn)讀入操作,寫(xiě)法如下

//讀入一張BGR圖像,要將lena.jpg放入DEBUG目錄下。

Image<Bgr, byte> img = new Image<Bgr, byte>("lena.jpg");

//ToBitmap()將IImage格式轉(zhuǎn)換為Bitmap格式,便能為PictureBox所用了。

pictureBox1.Image = img.ToBitmap();或者pictureBox1.Image=img.Bitmap;

Image格式還可以轉(zhuǎn)換成IntPtr,如:

srcImage = img.Ptr;

Image類實(shí)在功能強(qiáng)大,還有封裝了很多常用的圖像處理的函數(shù)。

2、圖片的數(shù)據(jù)處理

可以使用c++中OpenCV的指針訪問(wèn)的辦法,但是在c#.net的環(huán)境下,是不安全代碼,要加上unsafe關(guān)鍵字

unsafe
{
?? ((byte*)img.MIplImage.imageData + img.MIplImage.widthStep * i)[j] = 0;

}

建議使用EmguCV的寫(xiě)法

//對(duì)Image<Bgr,byte>的第y行第x列進(jìn)行讀取和寫(xiě)入操作。

Bgr color=img[y,x];

img[y,x]=color;

Bgr格式的數(shù)據(jù)可以通過(guò)Bgr.Blue,Bgr.Green,Bgr.Red訪問(wèn),Gray格式的數(shù)據(jù)可以通過(guò)Gray.intensity訪問(wèn),所有數(shù)據(jù)都是可以讀寫(xiě)的。

3、判斷一個(gè)視頻是否讀到文件尾,不能用null,要用一個(gè)為空類型的IntPtr,就是IntPtr eof = new IntPtr(),看其是否與eof相等。
4、IplImage*,CvCapture*等指針在C#中都用IntPtr來(lái)代替,且其中沒(méi)有cvGetMCvSize函數(shù),故用cvGetImageROI來(lái)暫時(shí)代替
5、由于C#中沒(méi)有取地址符號(hào)&,所以在這里所有的取地址都用引用來(lái)代替,即ref。
6、OpenCV中的所有的預(yù)定義的常量,都封裝在Emgu.CV.CvEnum這個(gè)枚舉類型里面。

?

?

?


參考:

1、 http://www.cnblogs.com/xrwang/archive/2010/01/26/TheInteractionOfOpenCv-EmguCvANDDotNet.html

2、 http://hi.baidu.com/pengjun/blog/item/4ce4cb80213c3ddf9123d9c3.html

3、 http://www.dotblogs.com.tw/chou/archive/2009/06/13/8812.aspx

4、 http://hi.baidu.com/barty/blog/item/0bc7353eac40393671cf6c42.html

?

C#.net 環(huán)境下使用OpenCV(一)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久中文精品 | 四虎影视在线 | 亚洲欧美中日韩中文字幕 | 久久综合色婷婷 | 久久综合香蕉久久久久久久 | 成人欧美视频在线观看播放 | 久久不卡免费视频 | 中文字幕在线日韩 | 国产在线观看不卡 | 丁香狠狠 | 亚洲视频手机在线观看 | 久久精品美女久久 | 色综合网站在线 | 日本欧美一区二区三区乱码 | 精品视频99 | 九九精品影院 | 久久香蕉国产精品一区二区三 | 一区二区日韩欧美 | 看欧美毛片一级毛片 | 国产国拍亚洲精品永久不卡 | 国产成人18黄禁网站免费观看 | 国产成人久久精品二区三区 | 欧美激情观看一区二区久久 | 久久免费视频在线观看30 | 久久精品伊人波多野结 | 最新国产精品视频 | 奇米色在线 | 在线观看日本人免费视频色 | 亚洲精品一区二区不卡 | av在线色 | 黄色成人影院 | 爱综合网 | 欧美一级成人免费大片 | 神马影院888不卡院 神马影院不卡不卡在线观看 | 色综合久久久久综合体桃花网 | 国产日产精品_国产精品毛片 | 国产乱码在线精品可播放 | 国产高清国内精品福利 | 爱爱网站免费 | 久久夜靖品 | 欧美日韩不卡在线 |