本人新写博客,文笔不太好,请见谅。
C#下使用OpenCV可以使用EmguCV,但是是通过把C++封装成动态链接库在C#中调用,这样在修改算法的过程中就会非常的不方便,封装DLL的时候也比较麻烦。在C#中除了Emgucv之外,还有一种叫做OpenCVSharp的工具,从名字就可以看出其是OpenCV提供给C#的接口。OpenCVSharp是OpenCV的.NET wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的样例参考,其采用LGPL发行,对商业应用友好(基本上相当于BSD)
转载自:https://blog.csdn.net/jameshater/article/details/79642384
我在按照https://blog.csdn.net/jameshater/article/details/79642384的方法设置OpenCVSharp,所用的编译软件是VS2010,他的两种方法我都尝试过,但是却遇上了一些问题,最后解决了,写下博客记录一下。
先说第一种,NuGet.安装法(就允许我这样称呼它),安装过程原博客有,我就不写了,只说遇到的问题,如下图。
发现连using OpenCVSharp都会出错。
解决方法:
by:2019年1月29日
右键项目属性,在应用程序那里将目标框架改成不带“Profile=Client”的,这个是简化版,少了很多支持项。
如图:
然后就可以using了。
第二种:
我原先用的是最新的,2018712的安装包,可惜本人能力有限,思想古老,跟不上时代,2018712安装完后using OpenCVSharp到时没问题,可惜,我用Mat的时候却一堆错误,然后我查了下别的博客,然后在官网上找到2016622的安装包,按照第二种方法再安装一次,编译倒是通过了,我离成功已经非常接近了!就差看效果!!可惜,出现了如图的错误,深陷bug不能自拔。
然后我又查了别的博客,脑洞大开,我将两种方法糅合在了一起。
首先,我用第一种方法在项目上安装好OpenCVSharp的库,这是当然出现了bug,然后我再用下载的OpenCVSharp的2016622版本,用这个的库里面的OpenCVSharp.dll替代第一种方法生成的OpenCVSharp.dll(引用),如下图:
,在第一种方法之后,在我的项目下会生成一个packages文件夹,然后将packages\OpenCvSharp3-AnyCPU.3.4.1.20180830\NativeDlls\x64(x86也行)的两个.dll复制到我的项目的dubug文件夹下面,竟然被我调通了!!!开心ing。。。。,上代码:
效果:
by:2019年1月29
这种虽然安装好了,但是我却发现在使用toBitmap的时候库错误,后来又研究了一下安装,最后在第一种里面完善了。
希望能帮助到看到的人。
如果有人用了我这种方法也出现这种错误的话请参考第一种重新安装吧。