搜索
您的当前位置:首页正文

VS2010安装及配置OpenCV2.2运行环境

来源:意榕旅游网
VS2010安装及配置OpenCV2.2运行环境

搞了一段时间的FPGA在视频图像采集上的应用,对视频图像处理产生了不少兴趣。本科时学过图像处理这门课,无奈学的都是理论T.T,于是决定抽时间学习一下OpenCV这个神奇的玩意儿,实践一下图像处理的应用,无论从感性还是理性上加深对图像处理的认识。

好吧,废话少说,先了解一下OpenCV。根据“有问题找度娘”的光荣传统,我们都可以从百度百科上了解到: OpenCV的全称是:Open Source Computer Vision Library。

OpenCV于1999年由Intel建立,现在由Willow Garage提供支持。OpenCV是一个基于BSD许可证授权(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。最新版本是2.2。

应用领域: 1、人机互动 2、物体识别 3、图象分割 4、人脸识别 5、动作识别 6、运动跟踪 7、机器人 等等……

接下来是OpenCV的安装和配置,这个本来没有什么可说的,网上教程一大把,一步步照做下来就OK的,可是也会碰到版本不同和版本更新的情况,OpenCV早有了2.2版本,VS2010也出来很久了,本人的环境就是VS2010+OpenCV2.2但是在OpenCV中文官网上的还是VC 2008 Express下安装OpenCV2.0/2.1的教程( http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.0/2.1 ),这让老夫情何以堪~

我们仍然可以参考官网的教程,一步步下来相当顺利。但到为VC++ 2008 Express配置OpenCV环境这一步(这一步是OpenCV运行环境的配置,能够使你的程序顺利地利用OpenCV的库文件),打开VS2010,菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories ,会惊奇地发现VC++目录编辑功能已被否决,那末,该怎么办呢?

根据光荣传统,我们可以从百度上了解到,VS2010版本是不提供VC++目录的相关设置的,并且可以找到很好的解决方法。感谢网友microfenal。

《在Visual Studio 2010中配置VC++目录》(http://blog.sina.com.cn/s/blog_72824f680100ps4c.html) 解决方法(此方法在你想调试任意一个利用到OpenCV库文件的程序之前使用而且只需配置一次): 打开任意一个VC++项目,再通过切换VS2010左下角的标签选择属性管理器;

双击任意“Microsoft.Cpp.Win32.user”,在弹出的属性页中设置VC++目录。该设置方法对所有VC++项目都有效。按参考官网的方法,只需修改可执行文件目录executable files、包含目录include files、库目录library files到你用CMake导出VC++项目文件的相关目录,例如OpenCV2.2\\VC2010\\bin、OpenCV2.2\\VC2010\\include、OpenCV2.2\\VC2010\\lib。

这种方法简单直观,到此问题解决。

万事俱备,只欠东风。开始第一个OpenCV程序吧~

基本参考官网的方法,需要特别注意的是,由于OpenCV版本的更新,OpenCV2.2的库文件和2.0版本相比有很多不一样。在为项目的Debug、Release配置增加依赖的库时添加的是你这个版本的OpenCV库文件名,例如OpenCV2.0中的core200d.lib或者OpenCV2.2中的opencv_core220d.lib等。在OpenCV2.2版本下需要添加的常用库文件有:

opencv_core220d.lib;opencv_highgui220d.lib;opencv_video220d.lib;opencv_ml220d.lib;opencv_legacy220d.lib;opencv_imgproc220d.lib;

那么是不是每次打开一个项目就要进行添加呢?当然有更方便的方法。受到上面设置VC++目录方法的启发,打开“Microsoft.Cpp.Win32.user属性页”—>链接器—>输入,将上面常用库文件名复制进“附加依赖项”。这种方法会将Debug、Release的附加依赖项配置成相同的库文件名,而Release的附加依赖项库文件名是不带后缀d的。需要进行小小的修改(为Release的附加依赖项库文件名去掉后缀d)。

或者,老老实实地分别为项目的Debug、Release配置附加依赖项。

最后,编译运行测试例程。图像处理中相当经典的美女lena的头像就展现在眼前了(在win7下将lena.jpg与项目的VC++project放在一起,就不需要填写完整路径了)!

PS:话说,写博客还真是花时间啊,可能自己很久没写东西了吧~费了好大劲挤出这么篇,算是一个整理吧。

/*********************************************************************** * OpenCV 2.0 测试例程 * 于仕琪 提供

***********************************************************************/

#include \"stdafx.h\" #include \"highgui.h\"

//所有的以新风格命名的函数都在 cv 命名空间中 //如果希望不要每次都输入 cv:: ,则可使用下面语句 //using namespace cv;

int _tmain(int argc, _TCHAR* argv[]) {

const char* imagename = \"lena.jpg\";

cv::Mat img = cv::imread(imagename); // Matlab风格的 cvLoadImage 函数的另一种调用

if(img.empty()) {

fprintf(stderr, \"Can not load image %s\\n\", imagename); return -1; }

if( !img.data ) // 检查是否正确载入图像 return -1;

cv::namedWindow(\"image\", CV_WINDOW_AUTOSIZE); //创建窗口 cv::imshow(\"image\", img); //显示图像

cv::waitKey();

return 0; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Top