Emgu CV 是什么?
EmguCV 是一个跨平台的图像处理库。它是 OpenCV 的 .NET 封装的版本。令人惊叹的包装器使得可以从.NET编程语言调用 OpenCV 函数。支持 C#,VB,IronPython, 和VC++ 等一些语言。EmguCV 可以编译为 Mono,并且可以运行在 Linux, Windows, Mac OS X, 和流行的移动平台,如 Android, iPhone, iPod Touch, 和 iPad 设备上。
"OpenCV 是由英特尔开发的,是一个编程函数库。它用于实时计算机视觉。开发人员可以在BSD许可下免费开源使用。使用C 和C++优化,包含超过 500 个功能,跨平台的计算机视觉。此外,它可以利用多核处理器来保持计算效率。但是它对 .NET 程序员不太友好。"
因为事实上,.NET是一种解释框架,不能直接调用函数,或用原生的C或C++的方法, .NET 开发人员可以使用 Emgu CV 来解决问题。
EmguCV 的目标之一是提供一个简单易用的计算机视觉基础供的 .NET 程序员使用,帮助他们快速建立相当复杂的视觉应用。Emgu CV 库包括视觉的许多领域,包括工厂产品检验、医学影像、用户接口、摄像机标定、立体视觉和机器人。
但易用性不同于用户能力和用户体验。如果开发人员精通 C 和 C++,OpenCV 会是一个更好的选择。
安装Emgu CV (本文中使用的 Emgu CV 3.3.0.2824 与 Windows 平台)
可以在SourceForge网站访问Emgu CV Windows可执行文件下载开始快速安装。
https://sourceforge.net/projects/emgucv/?source=directory
(如果上面地址更新,可以通过 https://sourceforge.net 主页里的搜索框来搜索"Emgu CV")
不管使用哪种安装方式,安装完成后,确保电脑的“环境变量”中包含了Emgu CV 的安装路径:
这里我下载的压缩包,直接放到了 C 盘根目录下。
“环境变量”中设置应该是包含 bin 目录中的DLL文件,所以设置的完整路径是 C:\libemgucv-windesktop-3.3.0.2824\bin
创建一个新项目
这里我使用的是 Visual Studio 2015 , 打开菜单 "文件"->"新建"->"项目"。
注意:Emgu CV 只能在 .NET Framework 4 以上的版本上使用。
添加Emgu CV 的控件到工具栏
右键工具栏分组,选择弹出菜单 "选择项",点击"浏览"按钮
找到安装的Emgu CV 的 bin 目录,选择目录中的Emgu.CV.UI.dll
打开后,VS2015的工具栏将添加 4 个Emgu 的控件工具
HistogramBox
ImageBox
MatrixBox
PanAndZoomPictureBox
在项目中添加必要的DLL引用
打开"解决方案资源管理器",右键"引用"选择"添加引用"
引用管理器 窗口 选择 "浏览" 按钮,找到安装的 Emgu CV的 bin 目录,选择4 个 DLL 文件添加:
Emgu.CV.UI.dll
Emgu.CV.UI.GL.dll
Emgu.CV.World.dll
ZedGraph.dll
确保勾选了4个 DLL 文件,确定
最后,在"解决方案资源管理器"的"引用"栏下可以看到成功添加的引用
设置项目的"活动解决方案平台"
打开"配置管理器"
"新建"一个平台
新建一个x86 平台
完成设置后
设置“Resources.resx”属性,复制到输出目录为 "始终复制",能确保执行目录中有引用的DLL 文件
复制安装文件夹 x86 文件夹中的DLL 文件到程序执行目录
复制 C:\libemgucv-windesktop-3.3.0.2824\libs\x86文件夹中的所有 dll 文件到 Visual Studio 项目的执行目录 .... bin\x86\Debug 中。
(打开Visual Studio 的 解决方案资源管理器,右键一个项目,选择弹出菜单“在文件资源管理器中打开文件夹”,就可以找到项目的目录)
添加代码
在Form1 窗体中放入一个 Button 控件,将它命名为" HelloWorldButton"
打开Form1 窗体的后台代码(F7)
*添加必要的命名空间
*添加HelloWorldButton 的点击事件代码
运行结果: