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 | Test | Downloaded | |
2009-10-01 | |||
2010-04-06 | VC2008, special pack | ||
2010-12-05 | VC2010, special pack | ||
2011-07-04 | |||
2011-09-12 | Ongoing | ||
2.4.2 | Downloaded | ||
2.4.3rc | Downloaded | ||
2.4.8 | 编译出错 | ||
2014-04-25 | |||
2014-08-21 | |||
2014-10-02 | |||
2014-11-11 | VERSION 3.0 beta | ||
2015-02-26 | |||
2015-04-24 | |||
2015-06-04 | |||
2015-07-30 | |||
2015-12-21 | Test | ||
2016-05-19 | 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
完整文章下载