1、简单说明
Emgu是Dot Net平台对OpenCV的封装,本质上没有增加新功能,是通过Dot Net的平台调用技术直接调用OpenCV C++语言写的库,使用我们可以方便用.net平台通过OpenCV去处理图像,最大的好处是可以利用.net丰富的类库及各种资源,还有.net的开发效率较快,让不熟悉C++语言的人也可以很方便使用OpenCV。
Emgu的官网是 http://www.emgu.com ,根据官网说法,Emgu是跨平台的,可以在Winodws、Linux、Mac OS X、IPhone、Android中使用。
2、下载及安装
Emgu是开源的,可以sourceforge下载,下载地址 http://sourceforge.net/projects/emgucv/ ,安装说明可参考 http://www.emgu.com/wiki/index.php/Download_And_Installation
现在最新版本是2.9,下载的安装包有208M。
安装过程没有什么特别的,就相当于解压到某个目录。当安装完成后,打开安装目录如下,我安装在D盘,目录是 D:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\
其中,bin\x86目录是OpenCV的32位库文件,bin\x64目录是OpenCV的64位库文件,Emgu运行时,会根据当前的平台决定是加X86目录下的DLL还是X64目录下的DLL。
Emgu.CV.Example目录放是的示例程序的源代码,
Emgu.CV、Emgu.Util、Emgu.CV.ML、Emgu.CV.OpenCL、Emgu.CV.UI、Emgu.CV.WPF、Emgu.CV.GPU、Emgu.CV.OCR、Emgu.CV.Stiching、Emgu.CV.VideoStab 这些目录放的是Emgu的源码,这些目录和OpenCV各模块是相互对应的。
lib和include两个目录放的是C++的引用动态库和头文件,用C++编写OpenCV程序时需要用到这两个目录的文件。
Solution目录方向的是微软VS的解决方案文件,可以直接打开。
Emgu.CV.DeguggerVisualizers目录未明白是干什么用的。
3、打开源代码及示例程序
打开目录 D:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\Solution\VS2010_2012 可以看到有三个文件
如果电脑上已经装有VS2010或者VS2012,那么双击 Emgu.CV.sln这个文件即可打开源码,打开的解决方案如下
双击Emgu.CV.Example.sln可打开示例程序,示例解决方案的项目比较多,还包含的源码项目,这样可以直接调试进入Emgu源码
4、运行“HelloWorld”
在“HelloWorld”项目上右键,“调试”=》“启动新实例”,即可运行“HelloWorld”程序,运行结果如下
5、HelloWorld项目分析
打开HelloWorld项目的引用可知,HelloWord需要引用Emgu.CV和Emgu.Util两个项目。
打开Program.cs源文件,可以看到还是比较简单的,如果写过OpenCV程序,应该很容易看得懂,因为Emgu保留了OpenCV的方法名,又由于Emgu只是对OpenCV进行平台调用封装,所以写法上和OpenCV C++程序也差多。