#0 写在前面
为什么要用EmguCV?
之前学习OpenCV是使用OpenCVSharp C# Wrapper,不过,个人更喜欢按照OpenCV C++的接口调用更方便,按照OpenCV C/C++接口这种形式有几个好处:1)网上有很多的例子可以参考,2)参考opencv自身的说明文档也比较直接;正好EmguCV提供了更接近OpenCV C++接口的封装方式,所以就用了。还有一个更重要的原因,EmguCV提供了大量的样例程序可以供学习。
配置EmguCV的过程还是有一些坑,没有OpenCVSharp方便。OpenCVSharp只需要通过Nuget安装就可以了,配置是非常简单的。
#1 下载和安装EmguCV和OpenCV
#1.1 EmguCV和OpenCV的网站链接
#1.2 EmguCV和OpenCV的版本
EmguCV采用的是3.3.0,对应的OpenCV的版本也是3.3.0
下载地址如下:
libemgucv-windesktop-3.3.0.2824.exe
#1.3 安装
EmguCV和OpenCV的安装都很简单只需要选择好安装路径,一路点击下一步就可以。
我将EmguCV和OpenCV都安装在C盘的根目录下了,安装后如下图所示。
#2 创建第一个VS Community 2017的工程
先上个图,完成后的C# Console工程
第一步,创建Console App(.net core)类型的应用
第二步,添加EmguCV的引用
EmguCV需要添加Emgu.CV.dll,Emgu.CV.UI.GL.dll,Emgu.CV.World.dll,路径是在C:\Emgu\emgucv-windesktop 3.3.0.2824\bin
添加方法是鼠标右键点击应用名称,选择Add,然后选择Reference,在弹出的对话框里选择browse,添加对应的dll
第三步,添加运行时需要的dll
- 添加OpenCV的dll “opencv_world330.dll”,路径在C:\opencv\build\x64\vc14\bin
- 添加EmguCV的dll “cvxxxx.dll”, 路径在C:\Emgu\emgucv-windesktop 3.3.0.2824\libs\x64,所有的dll都需要添加。如果不添加,运行时会报“cvinvoke”相关的异常。
添加方法是鼠标右键点击应用名称,选择Add,然后选择Existing Item,到相应的目录里,选择相应的文件即可。
添加完所有的dll后,需要设置Dll的“copy to output directory”为“copy always”;EmguCV的reference的Dll需要设置“Copy Local”为“Yes”
第四步,设置编译的CPU为x64
#3 运行结果的效果图:-)
代码是EmguCV的helloworld程序,代码位置在“C:\Emgu\emgucv-windesktop 3.3.0.2824\Emgu.CV.Example\HelloWorld”。