Emgu学习之(一)----Emgu简介
OpenCV
OpenCV是一个开源的跨平台的计算机视觉库,它的设计目标时执行速度尽量快,主要关注实时应用。可以运行在Linux、Windows、Mac OS、Android、IOS、Maemo、FreeBSD、OpenBSD等操作系统上。OpenCV采用C/C++语言开发和使用外还支持使用C#、Ruby、Java等编程语言,同时提供了对Python、MATLAB等语言的接口,实现了图像处理和计算视觉方面的很多通用算法。OpenCV包含的函数500多个,覆盖了计算机视觉的许多应用领域,如工厂产品检测、医学成像、信息安全、用户界面、摄像机标定、立体视觉和机器人、显卡加速等。
Emgu 介绍
Emgu CV是将OpenCV使用.NET编程语言(C#)封装成的.NET库,使用Emgu CV就可以在.NET平台上调用OpenCV的功能。
Emgu历史进程如下:
2008年3月 第一个版本开源版本EmguCV 1.1.1发布
2008年5月 EmguCV 1.2.2 正式发布,实现了从Image和Matrix类中获取》NET数组O(1)操作,以及一个窗体图像显示控件ImageBox。
2008年9月 EmugCV 1.3.0正式发布,修正了许多bug,新增了Bgra色彩空间,同时引入了ZedGraph组件显示直方图,并且对程序集实现了强签名。
2008年11月 EmugCV 1.4.0 正式发布,支持OpenCV 1.1Pre1版本。
2009年2月 EmugCV 1.5.0 正式发布,新增了机器学习库。
2009年10月 EmugCV 2.0.1 正式发布,基于OpenCV 2.0开发
2010年12月 EmguCV 2.2.0 正式发布,,新增了特征检测,并开始支持VS 2010开发环境。
2011年2月 EmguCV 2.2.1 正式发布,新增GPU硬件加速组件。
2011年8月 EmguCV 2.3.0 正式发布,使用tesseract 3.0新增OCR检测,同时增强及修复GPU组件功能。
2012年5-9月 EmguCV 2.4.X(0,2) 正式发布,新增IOS及Android方面的商业版本,同时将GPU组件建立在CUDA 4.2版本之上。
2013年1月-2014年4月 EmguCV 2.4.9 (Alpha,Beta)发布,GPU构架不在依赖客户机Nvidia显卡驱动程序,并开始支持Windows Store App,新增CLAHE算法。
2014年12月 EmguCV 2.4.10发布,基于OpenCV 2.4.10开发。
2015年5月 Emgu CV 3.0.0 候选版发布,基于OpenCV 3.0.0-rc1版本,新增对Windows Phone8.1、Unity5.0的支持。
2015年6月 发布Emgu CV3.0.0,基于OpenCV 3.0.0,将非托管代码合并到一个dll库(cvextern.dll)。新增对VS 2015的支持,移除VS 2008 的调试可视化支持。
2016年2月 发布 Emgu CV 3.1.0不再支持x86上的CUDA,CUDA 7.0版本已经放弃了x86支持。
2016年12月 发布 Emgu CV 3.1.0-r16.12,CUDA构建基于CUDA 8.0并支持最新的NVIDIA设备。
2017年5月 发布Emgu CV 3.2.0,基于OpenCV 3.2,升级Tesseract OCR到 4.0-dev版本,并且使用更好的LSTM -OCR引擎替代原先的OCR引擎
2017年11月 发布Emgu CV3.3.0 基于OpenCV 3.3,Windows版本使用Visual Studio 2017构建,同时将CUDA升级到9.0。
2018年4月 发布EmugCV 3.4.1 基于OpenCV 3.4.1 ,升级CUDA到9.1。
Emug资源地址:
Emgu CV官网:http://www.emgu.com
Emug CV 安装文件下载地址:https://sourceforge.net/projects/emgucv/files/emgucv/
Emgu CV 源码地址: https://sourceforge.net/projects/emgucv/files/emgucv/
从官网上你可以找到EmguCV的最新版本、基础教程和在线API文档。在我写这篇文章时,EmguCV发布的最新版本为Emgu.CV-3.4.1,如果从官网下载速度较慢,你可以从我的网盘下载,地址为:https://pan.baidu.com/s/1ed5a1lESb3wtUfq07Y61hA:。下载得到的时一个名称为libemgucv-windesktop-3.4.1.2976.exe的安装程序,安装完成后,在安装目录内容如下图所示:

在Solution文件夹中有Visual Studio的项目文件,其中Example项目包括了Emgu的源代码和例程,这些例程包括形状检测、脸部检测、车牌检测、OCR、交通标识检测、SURF特性匹配、视频处理等非常丰富的示例,具体例程项目如下图:

新建项目
1、 新建一个控制台项目,项目名称设置为Demo。
2、 添加Emgu引用


3、 添加OpenCV库—从安装目录下的libs\ X86(X64)文件夹中添加OpenCV库:

添加完成后选中它们,然后右击设置器属性,将“生成操作设置为”W无,“复制到输出目录设置为:如果较新则复制。

至此,我们就创建了一个可以使用的Emgu项目,在Program.cs中输入以下代码测试看是否能正常运行。
static void Main(string[] args)
{
//从文件中读取图像
var mat = new Mat("lena.jpg");
//创建一个显示窗口
CvInvoke.NamedWindow("Lena", Emgu.CV.CvEnum.NamedWindowType.AutoSize);
//显示图像
CvInvoke.Imshow("Lena", mat); //等等按键输入
CvInvoke.WaitKey(0);
//销毁显示窗口
CvInvoke.DestroyWindow("Lena"); //释放资源
mat.Dispose();
}
运行效果:

作者:潘圣国
出处:http://www.cnblogs.com/OceanChip
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。好的资源大家一起分享,共同进步。
Emgu学习之(一)----Emgu简介的更多相关文章
- Emgu学习手册
作为opencv的c#封装库.emgu可以满足基本的图像处理功能,经过测试,效果还可以,主要用于windows窗体应用程序的开发,或者wpf,你可以用来做ocr,也可以用来做人脸识别或者可以用来做定位 ...
- Emgu学习之(四)——图像阈值
http://www.cnblogs.com/CoverCat/p/5043833.html Visual Studio Community 2015 工程和代码:http://pan.baidu.c ...
- Emgu学习之(一)——Emgu介绍
OpenCV“OpenCV是一个开源的计算机视觉库.OpenCV采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上.OpenCV还提供了Python.Ruby.MATLA ...
- Emgu学习之(二)——图像读取、显示、保存
visual Studio Community 2015 工程和源代码:http://pan.baidu.com/s/1o6u5Fdw 内容 在这篇文章中将提到以下内容: 从文件中读取图像 Image ...
- Emgu学习之(三)——操作图像数据
Visual Studio Community 2015 工程和代码:http://pan.baidu.com/s/1jHmlQeE 内容 在这篇文章中将提到以下内容: 修改像素值 图像ROI 图像加 ...
- Emgu学习笔记(一)安装及运行Sample
1.简单说明 Emgu是Dot Net平台对OpenCV的封装,本质上没有增加新功能,是通过Dot Net的平台调用技术直接调用OpenCV C++语言写的库,使用我们可以方便用.net平台通过Ope ...
- Emgu 学习之HelloWorld
安装和配置 系统Win10,VS2013,下载Emgu安装包libemgucv-windesktop-3.4.3.3016 安装到了E:\OpenCV\emgucv-windesktop 3.4.3. ...
- C#.NET学习笔记1---C#.NET简介
C#.NET学习笔记1---C#.NET简介 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com -------------- ...
- python学习第一讲,python简介
目录 python学习第一讲,python简介 一丶python简介 1.解释型语言与编译型语言 2.python的特点 3.python的优缺点 二丶第一个python程序 1.python源程序概 ...
- python入门学习:2.列表简介
python入门学习:2.列表简介 关键点:列表 2.1 列表是什么2.2 修改.添加和删除元素2.3 组织列表 2.1 列表是什么 列表,是由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...
随机推荐
- LeetCode OJ:Divide Two Integers(两数相除)
Divide two integers without using multiplication, division and mod operator. If it is overflow, retu ...
- 登录页面jsp跳转到另一个jsp 与jsp-Servlet-jsp
登录页面jsp 到另一个jsp,与jsp-Servlet-jsp 都是可以从表单提交参数信息. 但是jsp-jsp ,只能通过<%=request.getParameter("use ...
- Electron 使用 Webpack2 打包多入口应用程序
Electron 使用 Webpack2 打包多入口应用程序 接前面一篇文章,前一篇文章中只有一个页面,并且只有一个js文件,所以打包的时候会把那个js打包成一个bundle.js文件.但是假如我们有 ...
- 设计模式之访问者(visitor)模式
在患者就医时,医生会根据病情开具处方单,很多医院都会存在以下这个流程:划价人员拿到处方单之后根据药品名称和数量计算总价,而药房工作人员根据药品名称和数量准备药品,如下图所示. 在软件开发中,有时候也需 ...
- IOS socket编程--Asyncsocket
iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 cocoa AsyncSocket库,用它来简化CFNetwork的调用,它提供了异步操作 主要特性有: 队列的非阻塞的读和写, ...
- 启动tomcat7w.exe提示"指定的服务未安装"
说下本人的情况:因为重装系统,安装在C盘的tomcat的失去作用.想要启动tomcat7w.exe(这是管理服务的)出现“指定服务未安装,无法打开tomcat7服务”的提示.原因是重装系统也导致之前安 ...
- DbEntry 简单实现
在着手编码之前首先安装DbEntry DbEntry.Net.4.1.Setup.zip 在建立类库时选择 DbEntryClassLibrary 如图 DbEntryClassLibrary1 中建 ...
- matlab数据流仿真和时间流仿真
simulink 使用的动态系统仿真,仿真需要求状态方程和输出方程,关键是求状态方程,而状态方程的求解有多种算法,可变步长和定步长,所以仿真时对求解器的选择和步长的设置就比较重要. 所谓基於数据流的仿 ...
- Spring IOC容器的初始化-(三)BeanDefinition的注册
---恢复内容开始--- 前言 在上一篇中有一处代码是BeanDefiniton注册的入口,我们回顾一下. 1.BeanDefiniton在IOC容器注册 首先我们回顾两点,1. 发起注册的地方:2. ...
- Linux下搭建 NFS
一.NFS简介 NFS是Network File System的缩写,即网络文件系统.一种使用于分散式文件协定,有SUN公司开发.功能是通过网络让不同的机器.不同的操作系统能够分享个人数据,让应用程序 ...