OPENCV环境配置Microsoft Visual Studio 2012 + OpenCV2.4.3环境配置
作者:CCK
日期:2013年1月8日
Microsoft Visual Studio 2012 + OpenCV2.4.3环境配置
目录
Microsoft Visual Studio 2012 + OpenCV2.4.3环境配置 0
1. 实验环境 (1)
2. 实验目的 (1)
2.1 OpenCV简介 (1)
2.2 实验内容 (2)
3. OpenCV的生成及安装 (3)
3.1 下载OpeCV,CMake,TBB并安装 (3)
3.2 用CMake生成VS2012的OpenCV工程 (3)
3.3 用Opencv VS2012工程编译生成自己的OpenCV库 (6)
4. 配置Opencv开发环境&编写测试程序 (7)
4.1 添加OpenCV环境变量 (7)
4.2 配置包含目录和库目录 (8)
4.3 编写测试程序 (9)
5. 实验心得 (10)
1.实验环境
Windows 8 x64
Microsoft Visual Studio 2012
OpenCV 2.4.3
CMake2.8.10
TBB41
2.实验目的
2.1O penCV简介
OpenCV(open source computer vision library)是一个基于C/C++语言的开源图像函数处理库。它的主要模块包括:
cv :核心函数库
cvaux:辅助函数库
cxcore:数据结构与线性代数库
highgui:GUI函数库
ml:机器学习函数库
OpenCV是跨平台的,支持包括Windows、Unix以及Android等平台。下图是英文wiki 上一张关于OpenCV概述的图。
2.2实验内容
本次实验主要了解OpenCV的安装及配置,然后创建一个简单的程序测试。
安装方式有两种选择:
1.直接下载OpenCV Windows平台安装文件。可以在https://www.sodocs.net/doc/7b15093628.html,/downloads.html找
到下载。这是一个安装包,安装程序直接把OpenCV库文件解压到指定位置,并且还可以自动配置环境变量。
2.另外一种是源码安装(压缩包地址也可以在这里找到)。如果你想用IPP、CUDA或者
Qt自定义安装opencv,或者调试OpenCV工程时想对OpenCV代码进行源码跟踪,就需要从源码安装。
由于我的实验环境使用的VS2012的编译器,而官方的安装包并没有VS2012对应的VC11
的库文件,如果使用VC10代替可以成功配置,但运行时会出现如下错误。
对于该问题,我们可以选择使用VC10的库文件配置,然后再在系统中安装VS2010的运行库,也可以先用方法二利用源码编译出VC11的库文件再配置。这里我选择了后者。
3.OpenCV的生成及安装
3.1下载OpeCV,CMake,TBB并安装
1.从https://www.sodocs.net/doc/7b15093628.html,/downloads.html下载OpenCV
2.4.3的windows平台安装文件,安装
到D:\Program Files (x86)\ OpenCV\opencv2.4.3;
2.从https://www.sodocs.net/doc/7b15093628.html,/cmake/resources/software.html下载CMake2.8.10安装的安装文
件,直接安装;
3.从https://www.sodocs.net/doc/7b15093628.html,/download下载tbb41_20121003oss的压缩包,解压
到D:\Program Files (x86)\OpenCV\tbb41_20121003oss;
4.配置TBB环境变量
环境变量的Path里添加:D:\Program Files (x86)\OpenCV\tbb41_20121003oss\bin \ia32\vc11(ia32表示要编译32位工程,intel64表示要编译64位工程,vc11表示VS版本为2012)
3.2用CMake生成VS2012的OpenCV工程
新建文件夹OpenCVProject:D:\Program Files (x86)\OpenCV\OpenCVProject(用于存放自己的OpenCV编译工程)。
打开CMake,"Browse Source..."选择Opencv的目录D:/Program Files/opencv(内有CMake的组态档"CMakeLists.txt"),"Browse Build..."选择刚才自己新建的工程存放路径"D:\Program Files\OpenCVProject"。点击Configure按钮,在出现的对话框中选择Visual Studio 11(如果编译64位dll注意选择64位VS11配置),默认Use default native compilers,Finish继续。(如下图)
配置完后往下拉,勾选WITH_TBB,点击Configure继续配置。(如下图)
修改红色部分“TBB_INCLUDE_DIRS”路径为D:\Program Files (x86)\OpenCV \tbb41_20121003oss\include,点击Configure继续配置。(如下图)
继续点击Configure,直到没有红色标记。
此时我们已经配置完成,点击Generate生成OpenCVProject工程,退出CMake。(如下图)
3.3用Opencv VS2012工程编译生成自己的OpenCV库
经过大概10来分钟编译完成,此时已生成56个Debug版的dll和lib。(如下图)
添加Release版,再次编译。(如下图)
上面两步后就能在D:\Program Files (x86)\OpenCV\OpenCVProject\install目录看到最终Debug版和Release版的dll、lib、文档目录doc,以及头文件目录include(bin内为两个版本dll,lib内为两个版本lib)。
将该目录下的bin、include、lib三个文件夹的内容全部复制到D:\Program Files (x86)\OpenCV\opencv2.4.3\build\x86\vc11目录下。此时占用6G多空间的D:\Program Files (x86)\OpenCVProject没有用了,但是如果想在调试时进行源码跟踪则不能删除,可以通过VS2012的“清理解决方案”来减到3G多。
至此,我们完成了OpenCV的源码编译与安装,我们将在下一环节进行OpenCV的配置。
4.配置Opencv开发环境&编写测试程序
4.1添加OpenCV环境变量
在环境变量Path里添加:D:\Program Files (x86)\OpenCV\opencv2.4.3\build\x86\vc11\bin。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。
4.2配置包含目录和库目录
首先,打开VS2012,新建控制台应用程序TestOpenCV。
然后,打开VS菜单栏—>视图—>属性管理器。
因为vs2010之后的版本不像vs2008以前的版本在VS菜单栏—>工具—>选项—>项目解决方案—>VC++目录下可以一次性增加库目录,不过利用属性管理器对一个工程增加过一次库目录后,对以后的工程无需再增添。如果仅需修改本工程的属性,直接在解决方案中右键选择属性进行修改即可即可。下面介绍前者。
双击属性管理器中的Debug | Win32 下的https://www.sodocs.net/doc/7b15093628.html,er,在属性页—>通用属性—>VC++目录—>包含目录下加入:
D:\Program Files (x86)\opencv2.4.3\build\include;
D:\Program Files (x86)\opencv2.4.3\build\include\opencv;
D:\Program Files (x86)\opencv2.4.3\build\include\opencv2。
(如下图)
在属性页—>通用属性—>VC++目录—>库目录下加入:
D:\Program Files (x86)\opencv2.4.3\build\x86\vc10\lib。(如下图)
4.3编写测试程序
将TestOpenCV的主函数代码改为如下:
// TestOpenCV.cpp : 定义控制台应用程序的入口点。
//
#include"stdafx.h"
#include
#include
#pragma comment( lib, "opencv_core243d.lib" )
#pragma comment( lib, "opencv_highgui243d.lib" )
using namespace cv;
int main()
{
namedWindow( "show_image", WINDOW_AUTOSIZE );
Mat src = imread( "opencv-logo.png" );
while(1)
{
imshow( "show_image", src );
char c = waitKey(0);
if( c == ' ' )
return 0;
}
return 0;
}
在工程目录下放一张图片“opencv-logo.png”。
编译运行结果如下:
5.实验心得
经过几个小时的查找资料,参考官方文档“VC 2008 Express下安装OpenCV2.0/2.1”以及其他的资料,摸索出了在最新的windows 8 x64 + VS2012平台配置最新的OpenCV2.4.3的方法。为了解决VS2012的兼容性问题,我使用了最复杂的编译源码的方式进行配置,在这个过程中我学到了很多东西,并且更加了解了OpenCV。网上关于VS2012的教程很少,有的那几个教程的配置是有问题的,他们的配置并不严谨,会出现很多问题,不过他们的方法给了我一点的启发,综合他们的方法我终于自己摸索出了正确的配置方法,虽然过程复杂了些,但是我也学到了很多东西,使用起来会更加方法,同时也可以为其他人的使用提供参考。