vbnet如何用emguopencv读取图片片?

如何安装和测试EmguCv:(Asp.net+vue+nginx+EmguCv)首先先介绍一下OpenCV,OpenCV的全称是:Open Source Computer Vision Library,OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。EmguCV是OpenCV的一个跨平台的.Net封装,由于OpenCV是用C和C++编写的,Emgu用C#对其进行封装,允许用.Net语言来调用OpenCV函数,如C#、VB、VC++等,同时该封装也可以被编译到Mono平台和允许在Windows、Mac OS、Android、iPhone、iPad等多个平台上运行。下面开始介绍如何在Windows下安装EmguCv1、下载并安装EmguCv 3.* 64位版本(本教程版本3.0.0.2157)我们可以去官网下载最新的安装包(点击打开),下载后双击安装,建议安装到C盘,防止不必要的权限麻烦,一般来说默认安装即可,一路Next下去2、测试Demo代码EmguCv安装完成后会在安装路径上多很多文件,其中有一个文件是专门放VSDemo代码的,如下图EmguCv我们打开安装路径下的Solution,选择相应的解决方案,打开项目即可,打开后会有很多相关例子,如人脸识别、车牌识别等,我们要测试的是一个Hello World项目,如下Hello World直接设为启动项目,然后重新生成再运行,如果看到下面代码说明EmguCv安装成功hello world显示出这样的效果,基本说明安装成功(不代表设置成功,后面介绍)3、检查Demo项目的配置如果已经迫不及待的去开发代码了,哪怕是直接复制代码,有时候会发现根本无法运行,先不急,我们去看一下Demo项目的相关配置(以HelloWorld为例)我们右键项目,选择属性,可以看到下面的项目设置项目设置》生成项目设置》应用程序在这里我们注意到两个地方不太一样,一个是生成下面的输出不在当前项目下(一般来说,输出路径为当前项目的bin/Debug下),浏览发现输出路径是前面提到的EmguCv安装路径的bin路径(这点很重要,往往也是自己代码运行不起来的原因);第二点是发现目标框架不是我们所安装那个,而是比较低的版本,因为我们的项目默认目标框架是4.0/4.5,而它的是3.5,如果实在运行不起来可以尝试减低目标框架的版本(虽然我没试过)4、添加环境变量如前面介绍的输出路径,项目生成的dll在EmguCv的bin目录下,可以获取的EmguCv的全部库函数(包括openCv),如果不指定输出路径,代码运行时会报错,原因是找不到EmguCv的库函数,为了全局访问,我们要把EmguCv的bin路径添加到系统变量path上,当然还需要EmguCv的bin下的x64和x86路径(openCv)(共添加3条记录)相信添加环境变量这种小case不用解释了,添加完成后重启电脑,让设置生效。5、开发自己的代码(模仿HelloWorld)完成配置后,新建一个控制台项目,然后引用相应的dll新建项目,引入dll然后在Main下复制HelloWorld(Demo)的代码,重新生成解决方案在运行即可(一般不再需要修改输出路径和目标框架)Hola Msg至此,EmguCv的安装和测试完成,后面就可以开发高级应用,如人脸识别等
最近接触计算机视觉方面的东西,于是准备下手学习opencv,从官网下载windows的安装版,配置环境,一系列步骤走完后,准备按照惯例弄个HelloWord。也就是按照网上的教程,打开了那个图像处理领域非常有名的lena图片(据说是个裸女\(^o^)/~)。正当我摩拳擦掌准备开始opencv学习之旅的时候,习惯了GUI的我突然觉得用C++做开发弄界面很麻烦,不如用C#来的方便,于是又发现了一个封装了opencv的.net库,可以被VC++,VC#,VB.net调用,即EmguCV。网上对于EmguCV的介绍很少,不是因为它没用,而是因为它的使用方法几乎和opencv一模一样,opencv的资料完全可以直接用于EmguCV。但对于小白来讲,opencv和Emgucv都是零基础的情况下学习emgucv,过程真的是很痛苦。通过加入QQ群,向一个个大牛请教,通过大牛不耐其烦的指导,总算完成了当时迫在眉睫的任务。在这里,非常感谢EmguCv群512782650中的群主小危,和热心群友X,是他们热心的指导和帮助,让我一个门外汉找到了一个切入的门径,让我明白了程序猿群体中除了高傲的屌丝外,还有热情的屌丝(哈哈,希望他们看到了别拍我)。投桃报李,我想,既然没有EmguCv的文章少,我就利用课余时间来写一点基础入门的、带点实例的帖子,不敢说深入浅出,那就浅入浅出吧。其中很多内容也是从网上Ctrl+V来的,但是加入了我学习过程中的理解,不敢说非常符合别人的学习习惯,但最起码是我自己从零开始学习时的一些体会。因为是小白,而且OpenCv也是零基础,所以,文章中的一些观点有可能有错误,希望得到各位大牛们的指点,如果能给刚刚接触EmguCV的童鞋一点帮助,那就更好了。在一开始学习EmguCv的时候,因为资料匮乏,我也几度要放弃,直到我看到了下面的这段文字。所以我非常感谢这篇文章的百度经验作者“超超在上”。所以我把这篇文章内容贴出来,希望给像我一样因资料匮乏而准备放弃EmguCv的童鞋以动力。不过不少新手在使用EmguCV在使用几次之后便放弃。这有以下几个原因:1.舆论影响。很多人都说C#的运行效率低。opencv是C和C++编写的,理所当然应该在VC++中运行,图像处理又是一个计算量很大的工作,C#不行。C#运行效率肯定比C/C++差,但是采用混合编程的方法就可以啦,用C#的框架和运行机制,计算交给C就好啦。EmguCV很多处理函数都是采用托管调用opencv。这个在EmguCV的安装包里可以看到,里面含有所有Opencv的dll。2.缺少资料,学习受挫而放弃。不得不承认EmguCV方面的学习资料实在是太少啦。很多时候出现问题,在网上基本上找不到答案。而且EmguCV前期版本对opencv封装不全面,很多基本的函数没有被封装,使用起来很不方便,网上很多人以讹传讹,编写很困难。不过使用2.3版本就没有这个问题,opencv基本函数都得到了很好的封装。opencv图像处理的函数都封装在cvInvoke中。而Image<>结构是连接opencv与emgucv的重要桥梁。其中C#的Intptr类型可以很好地传递IplImage*指针结构。
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐

我要回帖

更多关于 vb怎么在image中加载图片 的文章

 

随机推荐