Emgu学习笔记(一)安装及运行Sample
1、简单说明
Emgu是Dot Net平台对OpenCV的封装,本质上没有增加新功能,是通过Dot Net的平台调用技术直接调用OpenCV C++语言写的库,使用我们可以方便用.net平台通过OpenCV去处理图像,最大的好处是可以利用.net丰富的类库及各种资源,还有.net的开发效率较快,让不熟悉C++语言的人也可以很方便使用OpenCV。
Emgu的官网是 http://www.emgu.com ,根据官网说法,Emgu是跨平台的,可以在Winodws、Linux、Mac OS X、IPhone、Android中使用。
2、下载及安装
Emgu是开源的,可以sourceforge下载,下载地址 http://sourceforge.net/projects/emgucv/ ,安装说明可参考 http://www.emgu.com/wiki/index.php/Download_And_Installation
现在最新版本是2.9,下载的安装包有208M。
安装过程没有什么特别的,就相当于解压到某个目录。当安装完成后,打开安装目录如下,我安装在D盘,目录是 D:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\

其中,bin\x86目录是OpenCV的32位库文件,bin\x64目录是OpenCV的64位库文件,Emgu运行时,会根据当前的平台决定是加X86目录下的DLL还是X64目录下的DLL。
Emgu.CV.Example目录放是的示例程序的源代码,
Emgu.CV、Emgu.Util、Emgu.CV.ML、Emgu.CV.OpenCL、Emgu.CV.UI、Emgu.CV.WPF、Emgu.CV.GPU、Emgu.CV.OCR、Emgu.CV.Stiching、Emgu.CV.VideoStab 这些目录放的是Emgu的源码,这些目录和OpenCV各模块是相互对应的。
lib和include两个目录放的是C++的引用动态库和头文件,用C++编写OpenCV程序时需要用到这两个目录的文件。
Solution目录方向的是微软VS的解决方案文件,可以直接打开。
Emgu.CV.DeguggerVisualizers目录未明白是干什么用的。
3、打开源代码及示例程序
打开目录 D:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\Solution\VS2010_2012 可以看到有三个文件

如果电脑上已经装有VS2010或者VS2012,那么双击 Emgu.CV.sln这个文件即可打开源码,打开的解决方案如下

双击Emgu.CV.Example.sln可打开示例程序,示例解决方案的项目比较多,还包含的源码项目,这样可以直接调试进入Emgu源码

4、运行“HelloWorld”
在“HelloWorld”项目上右键,“调试”=》“启动新实例”,即可运行“HelloWorld”程序,运行结果如下

5、HelloWorld项目分析
打开HelloWorld项目的引用可知,HelloWord需要引用Emgu.CV和Emgu.Util两个项目。

打开Program.cs源文件,可以看到还是比较简单的,如果写过OpenCV程序,应该很容易看得懂,因为Emgu保留了OpenCV的方法名,又由于Emgu只是对OpenCV进行平台调用封装,所以写法上和OpenCV C++程序也差多。

Emgu学习笔记(一)安装及运行Sample的更多相关文章
- CentOS学习笔记--Tomcat安装
Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...
- OracleDesigner学习笔记1――安装篇
OracleDesigner学习笔记1――安装篇 QQ:King MSN:qiutianwh@msn.com Email:qqking@gmail.com 一. 前言 Oracle是当 ...
- nodejs学习笔记<一>安装及环境搭建
零零散散学了几天nodejs,进度一直停滞不前,今天沉下心来好好看了下nodejs的介绍和代码.自己也试着玩了下,算是有点入门了. 这里来做个学习笔记. ——————————————————————— ...
- docker学习笔记1 -- 安装和配置
技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...
- 学习笔记:安装swig+用SWIG封装C++为Python模块+SWIG使用说明
这段时间一直在摸索swing,用它来封装C++代码来生成python脚步语言.并总结了swing从安装到配置再到代码封装编译生成动态库的整个过程,下面这篇文章都是我在实际的运用中的一些经验总结,分享给 ...
- Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)
前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...
- TP6学习笔记一:安装与基本配置
1 说明与概述 1.1 说明 以下内容大部分来源于TP6完全开发手册,以手册为主附上个人理解,仅作学习使用. 1.2 概述 第一篇学习笔记,主要记录TP6的基础,包括TP6简介,安装,Hello Wo ...
- CUBRID学习笔记 2 安装教程
下载地址 http://www.cubrid.org/?mid=downloads&item=any&os=detect&cubrid=9.3.0 选择适合你的服务器版本 l ...
- Hadoop学习笔记3---安装并运行Hadoop
本文环境是在Ubuntu10.04环境下运行的. 在Linux上安装Hadoop之前,首先安装两个程序: 1.JDK1.6(或更高版本).Hadoop是用Java编写的程序,Hadoop编译及MapR ...
- Android(java)学习笔记160:Framework运行环境之 Android进程产生过程
1.前面Android(java)学习笔记159提到Dalvik虚拟机启动初始化过程,就下来就是启动zygote进程: zygote进程是所有APK应用进程的父进程:每当执行一个Android应用程序 ...
随机推荐
- javaScript增加样式规则(新增样式)
<html> <head> <link rel="stylesheet" type="text/css" href="b ...
- TCP的流量控制(转载)
1.TCP的滑动窗口 为了提高信道的利用率TCP协议不使用停止等待协议,而是使用连续ARQ协议,意思就是可以连续发出若干个分组然后等待确认,而不是发送一个分组就停止并等待该分组的确认. TCP的两端都 ...
- 监听SWT文本框只能输入数字
在SWT开发中,很多时候需要文本框只能输入数字(当输入字母或者其他字符时为无效),这个时候需要给文本框设置监听VerifyListener, code 如下: text.addVerifyListen ...
- 通过js引入当前所需要的js,css等
在我们web前端页面中经常会用到许多外部的js,css文件,那么问题来了,怎样才能一次性引入? 通过js便可实现 走码: //创建一个init.js文件 var jsUrls = "js/j ...
- py正则表达式
1.元字符 . ^ $ * + ? {} [] \ | () --> [] : - 常用来指定一个字符集:[abc], [a-z] 匹配任意一个字符 - 元字符在字符集中不起作用:[akm ...
- 验证abc三列数字符合我的小弟要求
需求好像是: 1.第一列数据有重复的找出来,并且找出它的重复位置 2.第三列根据第一列得出的位置,取出相应位置的数据进行相加 3.相加的结果 是否等同于第二列的对应位置数据 <!DOCTYPE ...
- UESTC_秋实大哥与线段树 2015 UESTC Training for Data Structures<Problem M>
M - 秋实大哥与线段树 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Sub ...
- LRU Cache 解答
Question Design and implement a data structure for Least Recently Used (LRU) cache. It should suppor ...
- VC++6.0出现no compile tool is associated with the extension.解决方法
对于刚解除VC++6.0的小白,在编译时候经常出现下图的错误提示: 解释为:不能编译此BmpRot.h文件,没有合适的编译工具可以编译此扩展名的文件. 很明显,当然只有.cpp文件才能编译. .h头文 ...
- Python load json file with UTF-8 BOM header - Stack Overflow
Python load json file with UTF-8 BOM header - Stack Overflow 3 down vote Since json.load(stream) use ...