Emgu的安装以及在VS2017上的配置
本人最开始是用VS2017和OpenCV做图像处理的,但是最近心血来潮想做一个UI界面,将之前做的图像处理算子封装在上面,然后利用可视化的处理手段进行调用。
说干就干,鉴于本人目前的能力,我选择.NET框架下的winform来进行图形界面的设计,在图形界面设计的过程,发现之前的算子在C#的平台上调用有点问题。因为目前OpenCV并不支持C#,所以想在C#平台上调用OpenCV代码有两种方法。一:将C++写的OpenCV代码(本人之前的图像处理算子就是用C++写的)封装成dll动态链接库,然后在调用。二:利用Emgu(这是国外公司开发的,里面封装好了OpenCV)将之前的代码重新再写一遍。
我是在尝试了这两种方式之后才写的这篇文章(有一说一,写这篇文章的初衷实在是因为CSDN和博客园上有些误人子弟的注水文章浪费了我太多的时间,有点气不过了。),所以还算有点发言权。
点击Files,然后进入下面这样一个界面:
点击emgucv这个父文件夹,然后会弹出这样的一个页面。
你可以从这个界面选择你想要下载的emgu的版本。我选择的是版本是4.1.0。然后会出现这样一个界面:
选择带有.exe后缀的文件,然后会弹出这样的一个界面:
等这个绿色的读秒读完了,浏览器就会自动下载(如何读秒读完了,浏览器没有任何反映,那本人的建议是换个版本重新下载,我之前也遇到过类似情况,换个下载的版本就行了)。
下载完之后,找到文件,大概是这样子的。
点击它然后会出现一个install程序,一步步安装即可。
你可以更改安装的路径,我是安装在D盘下的。安装好后的样子大概是这样的:
到这里emgu就弄好了。可能有些读者看了其他的文章,说要配置环境变量的。我没有配置也是能用的,说明配不配都不重要。
-
测试是否安装成功
在你下载好的的emgu文件夹中,有一些模板项目,可以用它来进行测试你的emgu是否安装成功。
在上面的文件夹中有一个Emgu.CV.Example文件夹打开它,然后找到一个叫HelloWorld的文件夹打开它,选择用vs2017打开HelloWorld.csproj文件。然后点调试。会出现这样一个界面:
能做到这一步说明你的emgu基本上是配置好了。
-
新建项目
-
创建一个项目。我用的是vs2017。
-
添加Emgu引用,在你的项目下找到引用,右击它,在弹出的对话框中点击添加引用,会弹出这样的一个窗口。
然后点击下方的浏览按钮,会出现一个这样的窗体:
在这里选择ZedGraph.dll、Emgu.CV.World.dll、Emgu.CV.UI.dll这三个dll文件。然后点击确定。然后在引用的下拉框里就会多了这三个dll文件。
我们还需要添加几个OpenCV的dll文件,如下图的几个。
右击你的项目,点击添加,然后再点击现有项,会弹出这样的一个窗体:
其实我也不知道具体要选择那几个dll文件,索性全选了。如果你这个界面没有文件,你就将文件筛选器修改成所有文件就可以了。
添加完成后需要选中它们,然后点击设置其属性,将“复制到输出目录”属性修改为“如果较新则复制”。
做到这步那么所有要引用的文件就都引用好了。
-
下面写一段代码测试:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.Util; namespace showImage { class Program { static void Main(string[] args) { Mat image = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\2.jpg"); //从文件中读取图像 CvInvoke.NamedWindow("AJpg", NamedWindowType.Normal); //创建一个显示窗口 CvInvoke.Imshow("AJpg", image); //显示图片 CvInvoke.WaitKey(0); //等待按键输入 CvInvoke.DestroyWindow("AJpg"); image.Dispose(); } } }
调试这段代码。
运行成功!!!!!
-