一、什么是OpenCVSharp
以前一直是基于OpenCV开发视觉算法,但C++语言对于GUI的开发相对于C#来讲确实很不方便,以前就了解到C#下使用OpenCV能够使用EmguCV,这段时间也确实是调通了,可是是经过把C++封装成动态连接库在C#中调用,这样在修改算法的过程当中就会很是的不方便,封装DLL的时候也比较麻烦。在C#中除了Emgucv以外,还有一种叫作OpenCVSharp的工具,从名字就能够看出其是OpenCV提供给C#的接口。OpenCVSharp是OpenCV的.NET wrapper,它比Emgucv更接近于原始的OpenCV,而且有不少的样例参考,其采用LGPL发行,对商业应用友好(基本上至关于BSD)。html
二、OpenCVSharp有什么特色
直接封装了更多的OpenCV方法,下降了学习的难度,比EmguCV更便于使用
大部分继承了IDisposable接口,方便使用using语句
能够直接调用原始风格的OpenCV方法
能够将图像对象直接转换成GDI使用的Bitmap和WPF的WriteBitmap
支持Mono。
三、OpenCVSharp在VS中的环境配置
相比较OpenCV配置比较麻烦,OpenCVSharp和EmguCV同样,其不需额外的系统环境配置,只须要对项目进行简单的配置便可使用。git
安装OpenCVSharp
有两种方式:一种是使用NuGet(库程序包管理器);另外一种直接下载安装包。github
第一种方式:使用NuGet(库程序包管理器),首先打开VS,在【工具】选项中是否有【库程序包管理器】算法
没有的话本身去安装好NuGet.app
https://jingyan.baidu.com/article/066074d636fd19c3c21cb0a2.html(转载自百度)工具
安装好以后,打开【工具】->【库程序包管理器】->【管理解决方案的NuGet程序包】,在其中搜索OpenCVSharp,选择合适的点击【安装】(最好安装最新的)。一直等待完成。学习
完成安装以后,须要将安装文件的DLL文件放置在项目可执行文件的Debug文件夹下,怎么去找安装好的文件呢测试
第二种方式是直接下载安装包spa
https://github.com/shimat/opencvsharp/releases.net
下载好以后解压到一个文件夹(任意的文件夹)
VS中OpenCVSharp的配置
文件安装好以后,在【解决方案】中右键【引用】->【添加引用】,选择【浏览】,将下载文件中的OpenCvSharp.dll文件添加进引用。
将下载文件中的OpenCvSharpExtern.dll复制到可执行文件的Debug文件夹下,全部配置OK,下面测试是否配置成功。
四、测试代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; using OpenCvSharp; //添加相应的引用便可 namespace OpenCVSharpTest2{ class Program { static void Main(string[] args) { Mat source = new Mat(@"1.bmp", ImreadModes.Color); Cv2.ImShow("Demo", source); Cv2.WaitKey(0); } }}