目录
一、前言
在.NET中使用EmguCV可以分为两种方式,一种就是将下载的exe程序安装、配置好后在工程中应用,另一种就是将DLL库文件和运行需要的文件直接拷贝到工程中。
二、EmguCV安装和配置
1、EmguCV exe软件安装
EmguCV是OpenCV的.NET版本,支持C#、VB.NET等编程语言。本次测试软件环境为win10+VS2013+EmguCV3.0。
EmguCV各个版本官方下载地址:Emgu CV - Browse /emgucv at SourceForge.net
EmguCV3.0网盘下载
链接:https://pan.baidu.com/s/1iiIQamh6qSaY6RGonbtFKw
提取码:hccj
(1)双击exe安装程序,然后点击下一步
(2)选择安装路径,路径名称不要使用中文,然后点击下一步开始解压安装
(3)计算机属性配置
选择“计算机”——>右击“属性”——>“高级系统设置”——>“高级”——>“环境变量”——>“系统变量”,双击Path添加安装目录(如“C:\EmguCV\emgucv-windows-universal 3.0.0.2157\bin\x64”)中间用分号英文隔开。(32位操作系统选“…\bin\86”)
2、EmguCV库文件方法
添加库文件引用,若Emgu.CV.UI已经存在则先删除再添加,否则程序运行出错。
复制到工程Debug或者Release文件夹下面,否则无法运行
在工具箱中添加EmguCV选项卡,然后添加Emgu.CV.UI.dll,即可添加对应的控件
三、C#工程中引用
1、创建winform工程,使用添加库文件方法
下载库文件
https://download.csdn.net/download/panjinliang066333/85711171
将该库文件夹复制指定路径位置
2、在工程添加引用选中的Dll库文件,若Emgu.CV.UI已经存在则先删除再添加,否则程序运行出错。
3、Winform程序
不管是控制台程序还是Winform程序,都要将该文件夹复制到Debug或者Release文件夹下面。
UI界面
添加3个imageBox(Emgu.CV.UI.ImageBox)
设置背景黑色、SizeMode为Zoom
代码
private void Form1_Load(object sender, EventArgs e)
{
//简单图像处理
Mat img = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\EmguCV Test\Image\LZL.jpg", LoadImageType.Unchanged);
if (img.IsEmpty)
{
Console.WriteLine("can not load the image \n");
}
//CvInvoke.Imshow("Image", img);
imageBox1.Image = img;
//转换为灰度图像
Mat grayImg = new Mat();
CvInvoke.CvtColor(img, grayImg, ColorConversion.Rgb2Gray);
//CvInvoke.Imshow("Gray Image", grayImg);
imageBox2.Image = grayImg;
//查找边缘
Mat sobelImg = new Mat();
CvInvoke.Sobel(grayImg, sobelImg, grayImg.Depth, 1, 0);
//使用canny算子查找边缘
Mat cannyImg = new Mat();
CvInvoke.Canny(grayImg, cannyImg, 20, 40);
//CvInvoke.Imshow("Canny Image", cannyImg);
imageBox3.Image = cannyImg;
}
运行
4、创建控制台测试工程
程序
static void Main(string[] args)
{
//简单图像处理
Mat img = CvInvoke.Imread(@"C:\Users\Administrator\Desktop\EmguCV Test\Image\LZL.jpg", LoadImageType.Unchanged);
if (img.IsEmpty)
{
Console.WriteLine("can not load the image \n");
}
CvInvoke.Imshow("Image", img);
;
Mat grayImg = new Mat();
//转换为灰度图像
CvInvoke.CvtColor(img, grayImg, ColorConversion.Rgb2Gray);
CvInvoke.Imshow("Gray Image", grayImg);
//sobel
Mat sobelImg = new Mat();
CvInvoke.Sobel(grayImg, sobelImg, grayImg.Depth, 1, 0);
//使用canny算子查找边缘
Mat cannyImg = new Mat();
CvInvoke.Canny(grayImg, cannyImg, 20, 40);
CvInvoke.Imshow("Canny Image", cannyImg);
CvInvoke.WaitKey(0);
}
运行
工程下载连接
https://download.csdn.net/download/panjinliang066333/85711221