以前用的openCV2.4.2和VS2008,用c++开发。感觉整个函数库太大了,虽然文档还比较全但还是很难方便地使用。而且几乎没有面向对象的思想。
后来知道了EmguCV,基本上就是.net版本的OpenCV,文档不如OpenCV,但可以利用.net开发的各种便利条件,所以尝试学习一下。
我的EmguCV版本是290,操作系统是windows 8 32位旗舰版,开发环境是VS2012
在开始之前,首先确认你可以完成此文中的HelloWorld:http://blog.csdn.net/fioletfly/article/details/7329051
EmguCV自带了很多例子,有的用exe格式提供(在bin目录下),但win8下没能成功运行;有的以工程的方式提供,但不能编译通过。下面说一下我遇到的问题和解决办法,仅供参考。
1、exe格式的例子无法运行
EmguCV290版本例子的运行需要.net3.5,请自行下载安装。
以Example.SURFFeature.exe为例。双击后提示“OpenCL.dll没有被指定在Windows上运行,或者它包含错误”。这是因为OpenCL.dll跟win8不兼容导致的。请到http://cn.dll-files.com/opencl.dll.html下载这个dll,放在提示的位置(覆盖掉或者备份一下),SURFFeature.exe就可以正确运行了。
2、工程无法编译通过
.net3.5和OpenCL的安装请参照1。然后把工程文件夹从example文件夹拷贝到你的任意工作目录中。双击工程文件SURFFeature.csproj,可能会让你转换版本,转换就是了。
然后会有很多错误和警告。首先在解决方案浏览器里移除CommonAssemblyInfo.cs(或者将它拷贝到你的工程文件夹的父文件夹),然后按照开始提到的博文里的方法添加各种引用。开始的时候我一次将引用全部添加了进来,后来发现不行。这样就可以解决:先全部选中后添加进来,然后看到带黄色叹号的就移除,然后重新添加引用,在最近添加的里面找到刚刚移除的几个,然后从下往上开始一个个添加、确认,就可以了。
这下应该能运行了,试试吧。