Emgu CV的配置以及在VS 2012中进行图像处理的步骤和实例
说明:
1、所使用的Emgu CV是目前的最新版本3.1.0,下载链接为:https://sourceforge.net/projects/emgucv/files/emgucv/3.1.0/(我选的下载量最多的那个版本,40.3MB)
2、经测试,在VS 2012中调用Emgu CV进行编程,不需要先安装OpenCV。
3、可以不配置环境变量,也可以配置环境变量,具体后面有说明。
4、目前本人的计算机系统是Windows 7 64位,但是在项目的属性中,只有将目标平台设置为x86才行。
安装和配置步骤:
1、安装下载的可执行程序,全部按照默认设置。这个版本的EmguCV默认安装的话,它的路径是:C:\Emgu\emgucv-windesktop 3.1.0.2282

2、配置环境变量,在系统变量中找到Path或者PATH(如果没有则新建Path),然后在最前面添加(如果你安装时选的不是默认安装路径,可能会有不同):
C:\Emgu\emgucv-windesktop 3.1.0.2282\bin\x64;C:\Emgu\emgucv-windesktop 3.1.0.2282\bin;C:\Emgu\emgucv-windesktop 3.1.0.2282\bin\x86;
如果是你的本账户使用,也可以在“用户变量”中新建Path,然后将上面的三条路径添加进去。如果想让所有用这台计算机的人使用,则推荐在“系统变量”的Path中添加这些路径。

如果不想配置环境变量,那么需要将原EmguCV的安装目录的bin文件下的x86文件夹整个拷到当前程序的Debug目录下:

3、打开VS 2012 ,新建一个Winform程序。在“工具箱”中右键“选择项”,添加Emgu.CV.UI.dll(在EmguCV安装的bin目录中),添加以后,在“工具箱”的“所有Windows窗体”中会多出来4个控件:

4、在“解决方案资源管理器”中,添加“引用”,在本版本的EmguCV中,dll的数量得到了整合,一眼看去“估计”有用的dll一共只有4个:

本例中,我们需要导入:Emgu.CV.UI.dll、Emgu.CV.World.dll
5、然后在程序中导入命名空间:using Emgu.CV;
6、然后拖3个ImageBox到主窗体,拖3个TextBox和4个Button到主窗体,如图所示:

功能说明:点击button1添加图片并显示到ImageBox1中;点击button2将ImageBox1中的图片去色,并将灰度图显示到ImageBox2中;点击button3直接载入新的图片并去色,然后显示到ImageBox3中;点击button4清除所有的图片和文本框中的内容。

完整程序如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Emgu.CV; namespace WindowsFormsApplication8
{
public partial class Form1 : Form
{
Mat img1 = null;
Mat img2 = null;
Mat img3 = null;
Stopwatch sw = new Stopwatch();
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog lvse = new OpenFileDialog();
lvse.Title = "选择图片";
lvse.InitialDirectory = "";
lvse.Filter = "图片文件|*.bmp;*.jpg;*.jpeg;*.gif;*.png";
lvse.FilterIndex = ; if (lvse.ShowDialog() == DialogResult.OK)
{
textBox1.Text = null; sw.Restart(); img1 = CvInvoke.Imread(lvse.FileName, Emgu.CV.CvEnum.LoadImageType.AnyColor); imageBox1.Width = img1.Width / ;
imageBox1.Height = img1.Height / ;
imageBox1.Image = img1; sw.Stop();
textBox1.Text = sw.ElapsedMilliseconds.ToString();
} } private void button2_Click(object sender, EventArgs e)
{
if (img1 != null)
{
img2 = new Mat(img1.Rows, img1.Cols, Emgu.CV.CvEnum.DepthType.Cv8U, );
textBox2.Text = null;
sw.Reset();
sw.Start(); CvInvoke.CvtColor(img1, img2, Emgu.CV.CvEnum.ColorConversion.Bgr2Gray);
imageBox2.Width = img2.Width / ;
imageBox2.Height = img2.Height / ;
imageBox2.Image = img2; sw.Stop();
textBox2.Text = sw.ElapsedMilliseconds.ToString();
}
} private void button3_Click(object sender, EventArgs e)
{
textBox3.Text = null;
OpenFileDialog lvse = new OpenFileDialog();
lvse.Title = "选择图片";
lvse.InitialDirectory = "";
lvse.Filter = "图片文件|*.bmp;*.jpg;*.jpeg;*.gif;*.png";
lvse.FilterIndex = ;
if (lvse.ShowDialog() == DialogResult.OK)
{
sw.Reset();
sw.Start(); img3 = CvInvoke.Imread(lvse.FileName, Emgu.CV.CvEnum.LoadImageType.Grayscale);
imageBox3.Width = img3.Width / ;
imageBox3.Height = img3.Height / ;
imageBox3.Image = img3; sw.Stop();
textBox3.Text = sw.ElapsedMilliseconds.ToString();
}
} private void button4_Click(object sender, EventArgs e)
{
img1 = null;
img2 = null;
img3 = null;
imageBox1.Image = null;
imageBox2.Image = null;
imageBox3.Image = null;
textBox1.Text = null;
textBox2.Text = null;
textBox3.Text = null;
}
}
}
注意:项目的属性和配置管理器设置如下:


配置错误了则会报以下错误:

后来我又用一台安装有Windows 10 64位操作系统的计算机试了一下,配置为Any CPU或者x86、x64都能正常运行,并不报错。
参考资料:
1、关于EMGU CV的那些事——1.环境搭建(win8 vs2012 emgucv3.0) (这个例子中用的EmguCV版本不是最新版本,“引用”中添加的dll不一样)
Emgu CV的配置以及在VS 2012中进行图像处理的步骤和实例的更多相关文章
- C#使用Emgu CV来进行图片人脸检测
项目需求:某市级组织考试,在考试前需审核考生采集表中的考生照片是否合格,由于要审核的考生信息采集表有很多,原先进行的是手动人工审核,比较费时费力,审核的要求也很简单,并不判断考生是否是图片本人(身份验 ...
- [转载+原创]Emgu CV on C# (一) —— Emgu CV on Visual C# 2010
2014-08-16 最近要进行图像识别,准备利用几天的时间研究一下Emgu CV,花了一晚上功夫进行调试环境安装,期间遇到了不少问题,现梳理一下安装过程和调试过程中出现的问题. 中间有转载别人的部分 ...
- Emgu CV的一个异常的解决方法
今年组里有大项目落我头上了,并不能像去年一样回家还能搞搞Cocos2dX,一把老泪流了下来... 回到正题,由于组里需要做一个显示板的自动测试项目,涉及到Computer Vision.不得不说,这才 ...
- 关于EMGU CV的那些事——1.环境搭建(win8 vs2012 emgucv3.0)
http://blog.csdn.net/aptx704610875/article/details/46045689 楼主读研阶段研究图像处理,想用C#实现PTAM/PTAMM算法并用UNITY创建 ...
- {Reship}{Emgu}{vs2010}C#配置Emgu
=============================================================================================This Ar ...
- Emgu CV 初试
Emgu CV 是.NET平台下对OpenCV图像处理库的封装,也就是.NET版.可以运行在C#.VB.VC++等. 安装完成后需要设置环境变量,比如我安装在D:\Emgu\emgucv-window ...
- 基于Emgu CV的人脸检测代码
这个提供的代码例子是Emgu CV提供的源码里面自带的例子,很好用,基本不需要改,代码做的是人脸检测不是人脸识别,这个要分清楚.再就是新版本的Emgu CV可能会遇到系统32位和64位处理方式有区别的 ...
- 自己积累的一些Emgu CV代码(主要有图片格式转换,图片裁剪,图片翻转,图片旋转和图片平移等功能)
using System; using System.Drawing; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; na ...
- Emgu.CV 播放视频
using Emgu.CV; using System; using System.Drawing; using System.Threading; using System.Windows.Form ...
随机推荐
- Python控制台输出不换行(进度条等)
sys.stdout.write('\r'+str) sys.stdout.flush() time.sleep(1)
- 封装与继承(PHP学习)
什么是封装? 答:封装时不知道内部构造,对外部只展现功能的这种行为.例如:收音机,你不知道收音机内部的构造,但是你知道收音机是能用来听广播的. 在PHP中,封装是,不对外公布,属性和方法,这些属性和方 ...
- MySQL查询优化器工作原理解析
手册上查询优化器概述 查询优化器的任务是发现执行SQL查询的最佳方案.大多数查询优化器,包括MySQL的查询优化器,总或多或少地在所有可能的查询评估方案中搜索最佳方案.对于联接查询,MySQL优化器所 ...
- 【AR实验室】mulberryAR:并行提取ORB特征
本文转载请注明出处 —— polobymulberry-博客园 0x00 - 前言 在[AR实验室]mulberryAR : ORBSLAM2+VVSION末尾提及了iPhone5s真机测试结果,其中 ...
- node中express的中间件之cookieParser
cookieParser中间件用于获取web浏览器发送的cookie中的内容.在使用了cookieParser中间件后, 代表客户端请求的htto.IncomingMessage对象就具有了一个coo ...
- 在CentOS 7中使用VS Code编译调试C++项目
1. 安装VSCODE 见VSCode官方链接 https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based ...
- 强大的NCBI接口
刚才小玩了下,不错,.net确实很方便,很强大 Using Entrez Utilities Web Service with C# and MS Visual Studio 2005 Updated ...
- 初探asciinema
在学习c++的时候想到so库注入到某些程序中,网上查了一些资料,发现了一些比较好玩的程序,分享一下. 主要可以对操作的进行视频回放,类似堡垒机的功能 安装: pip3 install asciinem ...
- ubuntu时区设置
local-gen zh_CN.UTF-8 UTF-8 /var/lib/locales/supported.d/local可以看到如下内容: zh_CN.UTF-8 UTF-8 en_US.UTF- ...
- 微软TechNet关于TLS的细节的描述
https://technet.microsoft.com/en-us/library/cc785811.aspx TLS协议太复杂了,RFC太长没时间看,这篇还可以,好歹知道个大概. 想知道全部细节 ...