Image Process
2011年3月29日 星期二
Image Process: Introduction to EmguCV-Part1
Image Process: Introduction to EmguCV-Part1: "Introduction of EmguCV Document: 為了將OpenCV的應用能廣至跨平台,以及能應用在自己撰寫的User interface 上面,所以翻譯EmguCV的技術文件。資料來源: http://www.emgu.com/wiki/index.php/M..."
Introduction to EmguCV-Part1
Introduction of EmguCV Document:
為了將OpenCV的應用能廣至跨平台,以及能應用在自己撰寫的User interface 上面,所以翻譯EmguCV的技術文件。
資料來源: http://www.emgu.com/wiki/index.php/Main_Page
(目前只翻譯有關C#的應用部分,)
CH1 : Introduction of EmguCV
//-------------------------------------------------------------------------------------------------------------//
跨平台(Cross Platform)
有更多的功能已經被應用在C#的執行上,比較起C++的執行OpenCV標頭檔的Include更容易被執行,並且它的更有價值的是如果你看見EmguCV在Fedora 10(Linux)上執行的話, 使用它通常會因為你會覺得你的的程式是跨平台的程式碼,而感到舒暢的感受。
附有Cross Langurage的範例程式。
架構概述(Architecture Overview)
CH2: 使用說明 (Tutorial)
OpenCV 的封裝 (Wrapping OpenCV)
Function Mapping - Emgu.CV.CvInvoke
在.Net的語言中,CvInvoke class提供了直接使用OpenCV 函式的方法。
在這一個類別的每一個函式,都和原本OpenCV 函式的命名一樣。
舉例來說:
在OpenCV 用來建立圖片大小及宣告名稱的方式如下:)
IplImage* image =
cvCreateImage(cvSize(400, 300), IPL_DEPTH_8U, 1);
這方式同等於在CvInvoke class 呼叫下列函式:
IntPtr image =
CvInvoke.cvCreateImage(new System.Drawing.Size(400, 300),
CvEnum.IPL_DEPTH.IPL_DEPTH_8U, 1);
這兩種程式碼都是在建立400x300 的8-bit 灰階圖片。
EmguCV的結構型式為Emgu.CV.Structure.Mxxx
這樣的結構型式是直接對應到OpenCV的結構型式
詞首的M代表的是Managed structure.
Emgu CV 也借用一些存在於.NET中的結構,來取代OpenCV中有著相同功能的結構,如下表所示:
Emgu.CV.CvEnum
CvEnum 的命名空間(namespace)提供直接和OpenCV對應的相關命名參數 (enumerations.)
舉例來說:
CvEnum.IPL_DEPTH.IPL_DEPTH_8U在OpenCV中和IPL_DEPTH_8U
都等於同一個值(8)。
主要的類別 (Managed classes)
分為以下兩列:
處理圖片的類別(Working with Images)
處理陣列運算的類別(Working with Matrices)
使用Visual Studio的注意事項 (Intellisense in Visual Studio)
如果你們使用Visual Studio 當作開發的工具,你必須在發展Emgu CV的應用上有充分的明智的了解。
舉例來說: 如果你想使用 cvCreateImage函式建立一張圖片,在EmguCV這函式被封裝在CvInvoke 的類別內。
所以在使用時,程式會寫成CvInvoke.cvCreateImage。
上表表示在CvInvoke 的類別內可以使用的Functions。
//安裝方法以及使用說明會記載於Introduction to EmguCV-Part2 //
訂閱:
文章 (Atom)