CSharp语言中也可以调用类似C++中的OpenCV,库名为:EmguCV。
1、EmguCV下载地址:
Emgu CV - Browse /emgucv at SourceForge.net
本文使用的版本为:EmguCV3.4.1,百度云下载地址为:
链接:https://pan.baidu.com/s/1NowmmdVRt4qbCPgCVsWgfA
提取码:n5z0
2、添加环境变量
双击系统变量Path,添加EmguCV路径。D:\Softwares\EmguCV为解压路径。
3、打开VS 2017新建WinForm项目
4、配置管理器改为x64
5、 VS中添加EmguCV库引用
(1)添加引用
(2)浏览
(3)选择引用图中四个
(4)点击确定,引用成功
6、此时EmguCV就能正常使用了。
在Form1.cs[设计]界面右键或者按F7进入代码编辑页面
添加如下库:
using Emgu.CV;
using Emgu.CV.Structure;
using Emgu.CV.Util;
using Emgu.CV.CvEnum;
添加如下代码:
Mat srcImg = CvInvoke.Imread("E:\\Codes\\VisualStudio\\CSharp\\WindowsFormsApp1\\WindowsFormsApp1\\images\\Ray1.jpg"); //读取图片
CvInvoke.NamedWindow("img", NamedWindowType.AutoSize); //创建窗口
CvInvoke.Imshow("img", srcImg); //显示图片
CvInvoke.Imwrite("Raysave.bmp", srcImg); //保存结果图片
CvInvoke.WaitKey(0); //暂停按键等待
7、运行出现异常
System.TypeInitializationException:““Emgu.CV.CvInvoke”的类型初始值设定项引发异常。”
解决方法:将D:\Softwares\EmguCV\libs\x64路径下的库文件拷贝到工程Debug目录下E:\Codes\VisualStudio\CSharp\WindowsFormsApp1\WindowsFormsApp1\bin\x64\Debug\
至此,EmguCV在CSharp中使用配置完成。但是更进一步,我们还需要将EmguCV的图像显示在WinForm的界面上,EmguCV提供了画图的UI界面,接下来配置EmguCV与WinForm的UI接口。
8、配置EmguCV画图的UI界面。
【工具】→【选择工具箱项】→【在.NET Framework组件栏中单击浏览】→【选择安装路径下的bin文件夹下的Emgu.CV.UI.dll】→【单击确定进行添加】→【添加完成在工具箱中就有所选择的工具】
9、 新建一个ImageBox
10、新建一个Button
11、布局如图
12、双击"读图",添加如下代码
添加如下读图显示代码:
Image<Bgr, Byte> image = new Image<Bgr, byte>(@"E:\Codes\VisualStudio\CSharp\WindowsFormsApp1\WindowsFormsApp1\images\Ray1.jpg");//从文件加载图片
imageBox1.Image = image;//显示图片
13、运行,点击读图
14、使图片显示大小自适应ImageBox
设置ImageBox属性SizeMode为:StretchImage
15、再次运行