OpenCV2.4.2+VS2010+XP

初学OpenCV,纠结了半天终于安装配置完成。
本文借用了两篇博客的内容,原文地址:http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=15481;
http://blog.csdn.net/shuxiao9058/article/details/7525067

下载OpenCV

  1. 从http://sourceforge.net/projects/opencvlibrary/下载 OpenCV for Windows。
  2. 运行 OpenCV-2.4.2.exe 解压并放到某个目录下,例如 D:\Program Files\OpenCV2.4.2 (无需运行setup.exe,解压则可)。解压后的目录结构如下图。
OpenCV2.4.2+VS2010+XP_第1张图片


安装CMake(不打算自己编译无需安装)

从 http://www.cmake.org/cmake/resources/software.html 下载 Windows (Win32 Installer) 安装。

编译OpenCV(非必需步骤)

用CMake导出VC++项目文件

  • 运行cmake-gui,设置where is the source code路径为OpenCV安装路径(本文档假定安装位置为:D:\Program Files\OpenCV2.4.2),并创建子目录D:\Program Files\OpenCV2.4.2\build\my,并将cmake的"where to build the binaries"设置为这个目录。
  • 然后点 configure,在弹出的对话框内选择 Visual Studio 10。
  • 你可根据你的系统修改选项,修改后再次选择“Congfigure”,完成后选择“Generate”。


OpenCV2.4.2+VS2010+XP_第2张图片
编译 OpenCV Debug和Release版本库

完成上一步骤后,将在D:\Program Files\OpenCV2.4.2\build\my目录下生成OpenCV.sln的VC Solution File,请用VS++ 10打开OpenCV.sln,然后执行如下操作:

  • 在Debug下,选择Solution Explorer(解决方案资源管理器)里的 Solution OpenCV(解决方案“OpenCV”),点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
  • 在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。

全部运行完毕后,针对你的系统的OpenCV库就生成了。

设置环境变量

在桌面上右击“计算机”,选择“属性-高级系统设置”,进入“高级”选项卡,“环境变量-系统变量”,如图4所示:
OpenCV2.4.2+VS2010+XP_第3张图片
图4 系统环境变量
    编辑“Path”变量,在最后添加OpenCV的bin目录所在全路径。如我应该添加以下两个变量:“D:\Program Files\OpenCV\opencv2.4.2\build\x86\vc10\bin”,这里要注意的是变量之间是以分号“;”分隔的(玩过Linux的都知道Linux下系统变量之间是以冒号“:”分隔的)。
    修改完系统环境变量后,注销一下电脑,或者重启“explorer.exe”进程(如图5所示)即可,这里不过多赘述。

Visual Studio 2010下配置OpenCV目录

糟糕,当我们打开Visual Studio 2010依次选择“工具-选项-项目和解决方案-VC++ 目录”的时候,系统会提示如图9所示信息:
OpenCV2.4.2+VS2010+XP_第4张图片
提示我们单击“?”获取更多信息,经过艰辛寻找原因后,我们知道项目属性表是扩展名为 .props 的基于 XML 的文件。 它使您能为生成工具(如编译器或链接器)指定开关,并创建 用户定义的宏。
    经过查找文件后,我发现在“C:\Users\jiya\AppData\Local\Microsoft\MSBuild\v4.0”目录(你可能要修改一下路径)下有项目默认配置文件。

    因此,我们可以编辑“Microsoft.Cpp.Win32.user.props”文件以添加相关的VC++ 目录。其中<ExecutablePath>和</ExecutablePath>标签之间是指可执行文件目录、<IncludePath>和</IncludePath>标签之间是指包含文件目录、<LibraryPath>与</LibraryPath>标签之间是指库文件目录,本人编辑后的内容如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ExecutablePath>D:\Program Files\OpenCV\opencv2.4.2\build\x86\vc10\bin;$(ExecutablePath)</ExecutablePath>
    <IncludePath>D:\Program Files\OpenCV\opencv2.4.2\build\include;D:\Program Files\OpenCV\opencv2.4.2\build\include\opencv;D:\Program Files\OpenCV\opencv2.4.2\build\include\opencv2;D:\Program Files (x86)\tbb40_20120201oss\include;$(IncludePath)</IncludePath>
    <ReferencePath>$(ReferencePath)</ReferencePath>
    <LibraryPath>D:\Program Files\OpenCV\opencv2.4.2\build\x86\vc10\lib;D:/Program Files (x86)/tbb40_20120201oss/lib/ia32/vc9;$(LibraryPath)</LibraryPath>
    <SourcePath>$(SourcePath)</SourcePath>
    <ExcludePath>$(ExcludePath)</ExcludePath>
  </PropertyGroup>
</Project>

新建项目测试


“新建项目”,选择“Visual C++-空项目”,输入项目名“OpenCV”,“添加新项-代码-C++ 文件”,输入文件名“OpenCV.cpp”,编辑代码,这里本人使用的测试代码如下所示:
[cpp]  view plain copy
  1. #include <opencv/highgui.h>  
  2.   
  3. int main( int argc, char** argv ) {  
  4.     IplImage* img = cvLoadImage( argv[1] );  
  5.     cvNamedWindow( "OpenCV", CV_WINDOW_AUTOSIZE );  
  6.     cvShowImage( "OpenCV", img );  
  7.     cvWaitKey(0);  
  8.     cvReleaseImage( &img );  
  9.     cvDestroyWindow( "OpenCV" );  
  10.   
  11.     return ( 0 );  
  12. }  
(2)添加附加依赖项有两种方法:
法1:右击项目名称,选择“属性-配置属性-链接器-输入”,将“opencv_highgui242d.lib opencv_core242d.lib opencv_ml242d.lib opencv_imgproc242d.lib”(这里注意Visual Studio 2010下依赖项之间是以分号间隔的,因此应为“opencv_highgui242d.lib;opencv_core242d.lib;opencv_ml242d.lib;opencv_imgproc242d.lib;”,如图10所示)拷贝到“附加依赖项”栏中,确定即可。
  OpenCV2.4.2+VS2010+XP_第5张图片
法2:在上述代码头文件下方添加以下代码:
[cpp]  view plain copy
  1. #pragma comment( lib, "opencv_highgui242d.lib" )  
  2. #pragma comment( lib, "opencv_core242d.lib" )  
  3. #pragma comment( lib, "opencv_ml242d.lib" )  
  4. #pragma comment( lib, "opencv_imgproc242d.lib" )  
(3)编译即可,上述程序在main函数中使用了参数,如果想调试的话,可以右击项目名称,选择“属性-配置属性-调试”,在命令参数项中输入参数(如“D:\\Lena.jpg”,注意这里是双反斜线,起转义作用,如图11所示)即可。
  OpenCV2.4.2+VS2010+XP_第6张图片
(4)运行效果截图,如图12所示,至此则说明OpenCV运行正常。
OpenCV2.4.2+VS2010+XP_第7张图片

备注:在配置OpenCV的时候你可能需要intel TBB,但是这不是必需的。如果在编译程序的时候提示“找不到tbb_debug.dll”等问题,请下载intel TBB并像上面一样配置环境变量及VC++目录(注意要注销一下电脑或者重启“explorer.exe”进程)。如找不到tbb_debug.dll文件的问题,在Path环境变量中添加路径D:\Program Files\opencv\build\common\tbb\ia32\vc10

本人亲测此安装配置在该环境下可行,其中测试时碰见一个问题,程序调试没问题,但是图像无法显示,窗口全灰,找了半天发现是自己犯了一个低级错误,图片资源错放在了工程目录下,没有放进项目代码文件夹下。

你可能感兴趣的:(OpenCV2.4.2+VS2010+XP)