OpenCV入门——OpenCV从入门到实战(一)

本培训是打开机器视觉大门的一把金钥匙


前 言

什么是机器视觉?简单的说,就是机器上的眼睛和大脑,由眼睛观察,再交由大脑分析、判断、处理,来指挥机器做出动作,完成任务。


什么是OpenCV?Open是Open Source的简写,意思是开放式源码;CV是Computer Vision的缩写,意思是计算机视觉。


OpenCV的全称是:Open Source Computer Vision Library,Intel公司支持的开源计算机视觉库,采用c/c++编写,可以运行在linux/windows/mac等操作系统上。


Opencv还提供了python、ruby、matlab以及其他语言的接口。其目标是构建一个简单易用的计算机视觉框架,以帮助开发人员更便捷地设计更复杂的计算机视觉相关应用程序。


Opencv包含的函数有500多个,覆盖了如工厂产品检测、医学成像、信息安全、用户界面、摄像机标定、立体视觉和机器人等,具体将在下面介绍。


Opencv使用宽松的BSD开源协议,在遵守协议的情况下,允许生成商业产品,不必开发源代码。


Opencv利用了IPP(高性能多媒体函数库)高度手工优化,且在inter处理器上有更高的运行速度。


  第一篇   基础篇  


  一:OpenCV入门  


  1.OpenCV的版本  

日期

版本及链接


备注

2006-10-19

VERSION 1.0.0

Test

Downloaded

2009-10-01

VERSION 2.0.0



2010-04-06

VERSION 2.1.0


VC2008, special pack

2010-12-05

VERSION 2.2.0


VC2010, special pack

2011-07-04

VERSION 2.3.0, superpack



2011-09-12

VERSION 2.3.1, superpack


Ongoing


2.4.2


Downloaded


2.4.3rc


Downloaded


2.4.8


编译出错

2014-04-25

VERSION 2.4.9



2014-08-21

VERSION 3.0 alpha



2014-10-02

VERSION 2.4.10



2014-11-11

VERSION 3.0 beta



2015-02-26

VERSION 2.4.11



2015-04-24

VERSION 3.0 rc1



2015-06-04

VERSION 3.0



2015-07-30

VERSION 2.4.12



2015-12-21

VERSION 3.1

Test


2016-05-19

VERSION 2.4.13 

Test

VS2012

(从Version1.0.0到Version2.4.8)


OpenCV2.4.9和2.4.8的配置几乎一样,唯一的区别在下文中的第五步,链接库的配置,把对应的248改成249即可。


OpenCV 3.0配置更是被简化了。和2.4.8、2.4.9的区别就是下文第五步,链接库的配置,只用添加:

opencv_ts300d.lib、 opencv_world300d.lib(debug版本的库)

或opencv_ts300.lib、opencv_world300.lib(release版本的库)即可。


Windows系统下:

PATH = D:\SDK\Tool\2.4.8\opencv\build\x86\vc10\bin


从V2.0后取消了

cvcam.h    http://download.csdn.net/detail/chnyjw1989/4690925

CvvImage   http://blog.sina.com.cn/s/blog_4dfdfdc30100t665.html


OpenCV2.2里CvvImage类被取消,如果想继续沿用以前的CvvImage,其实很简单,只要搜到CvvImage的源代码(.h和.cpp)。在自己的工程里面增加一个新的CvvImage类就可以了。然后注意在view类头上加个#include "CvvImage.h"


  2.安装OpenCV及Visual Studio环境配置  

本教程以Visual Studio2010为开发平台,以OpenCV2.4.8为例。


首先,在当前计算机中,安装Visual Studio 2010;


第二,下载OpenCV安装包,并安装到当前计算机。


第三,创建一个Visual Studio 2010工程项目,在此项目下配置OpenCV,并进行编程练习,初试OpenCV的能力和效果;


  1.1 安装准备  

安装Visual Studio 2010就不必介绍了。


  1.1.1 创建VS2010工程项目  

启动Visual Studio 2010,


  1.1.2 下载安装OpenCV   

在官网:http://opencv.org/上找到OpenCV windows版下载下来。


下载完后得到文件OpenCV 2.4.8,双击后会提示解压到某个地方,比如D:\Program Files\,考虑到OpenCV有多个不同版本,为了以后在不同版本下进行开发程序,建议以OpenCV的版本号加以区分。


因为OpenCV项目文件打包的时候,根目录就是OpenCV,所以我们不需要额外的新建一个名为OpenCV的文件夹,只需在你需要放置的目录下在以版本号定义一级目录,然后点击解压按钮即可。


我的开发包目录是D:\SDK\Tool\:

稍后,OpenCV2.4.8近3个多G的文件就解压到了D:\SDK\Tool\2.4.8下。


其中,build里面是使用OpenCV相关的文件,是开发程序要用到的程序库,sources文件夹里是OpenCV的源代码,开发程序时没有大用,留下来可供自己今后学习只用。


  1.2 在VS2010环境下配置OpenCV  


  1.2.1 Windows系统变量配置  

因为采用的是Visual Studio2010,我们以开发32bit程序为例,则OpenCV的运行库的路径为: D:\SDK\Tool\2.4.8\OpenCV\build\x86\vc10\bin,如下图所示。

为了能够让你后续开发好的应用程序运行时,找到OpenCV的运行库,需要经OpenCV的运行库的路径增加到Windows的系统变量中。


【计算机/当前电脑】【(右键)属性】【高级系统设置】【高级(标签)】【环境变量】 选择系统变量中的PATH 【编辑】 在环境变量中增加一个路径 【确定】。


在变量值里面添加相应的路径。如图:

  1.2.2 配置VS2010编程环境的头文件  

OpenCV库的头文件位于:

D:\SDK\Tool\2.4.8\OpenCV\build\include

D:\SDK\Tool\2.4.8\OpenCV\build\include\opencv

D:\SDK\Tool\2.4.8\OpenCV\build\include\opencv2


需要将它们一一加入到VS2010环境下。

鼠标右击VS2010下应用程序的工程 【(右键)属性】,即:


【(右键)属性】【配置属性】 【C/C++】【常规】 编辑【附加包含目录】将上述三个路径一一加入到附加包含目录 【确定】。

  1.2.3  配置VS2010编程环境的lib文件  

在OpenCV库中,其lib文件根据Release和Debug两种编译模式提供了两套,其中Debug在lib文件的尾部增加了字符“d”,例如:

opencv_calib3d248.lib为Release模式;

opencv_calib3d248d.lib为Debug模式;


编译时要根据不同的编译模式,区别使用。因为OpenCV的lib文件放在同一文件夹下,为便于在两种不同编译模式下切换加入,建议将此文件夹下的两类lib文件分开放置,分别放在不同的文件夹,本文中将Release的lib移到\lib_r\中。


Debug模式的lib库位于:D:\SDK\Tool\2.4.8\OpenCV\build\x86\vc10\lib

Release模式的lib库位于:D:\SDK\Tool\2.4.8\OpenCV\build\x86\vc10\lib_r


因为,程序调试时总是在Debug模式进行,所以先将Debug的lib库加入到VS2010编程环境下。同时,为了便于不同工程下进行拷贝,加入时最好一个新建筛选器,如下图方法所示,新建筛选器一个“LibCV”,即:

鼠标右击VS2010下应用程序的工程 【添加】【新建筛选器】。即:

添加一个LibCV,即有:


之后,鼠标右击“LibCV” 【添加】【现有项】。即:

将D:\SDK\Tool\2.4.8\OpenCV\build\x86\vc10\lib目录下的lib文件全部加入到“LibCV”下。

到此为止,OpenCV在VS2010下的所有配置已经完成,使用OpenCV库开发机器视觉的应用程序已经具备条件。


  3. 初显身手  

这里要显示一副图像,本文的图像位于工程目录下,名称为TestImage.bmp。


在工程的对话框中增加一个打开图像的Button,将其资源ID改为“IDC_BUTTON_OPEN_IMAGE”,其Caption改为“打开图像”,双击它,在其Clicked相应事件中加入:


Mat matImage = imread("TestImage.bmp");    //读入一张图片

string strWinCaption = "显示图像"; //窗体名称

namedWindow(strWinCaption); //创建一个名为 "显示图像"窗口  

imshow(strWinCaption, matImage); //在窗口中显示图像 

cvWaitKey(0); //等待按键

waitKey(5000); //等待5000 ms后窗口自动关闭 

destroyWindow(strWinCaption); //销毁窗口


运行程序,点击“打开图像”,显示出图像:





  联系方式  

邮箱:david.lu@lontry.cn

电话:0755-29952252, 陆工:15999607370

QQ:457841768


  完整文章下载  

《OpenCV从入门到实战》