【admin超详细验证版】OpenCV2.4.5+Win7 32bit+VS2008配置说明贴

由于OpenCV版本的升级,WinOS升级到Win7,网上找的配置贴由于版本或者其他原因都有这样那样的小错误,这里将admin验证过的一个配置过程做一个说明,大概是将网上的内容做一个整合,然后实际通过实验验证。

By RuanYuan.Net@admin 2013.4.16

配置环境:
======
PC OS: Win7 32bit
VS: VS2008
OpenCV版本: 2.4.5

配置过程:
======

0.安装配置OpenCV所必要的软件

在配置openCV之前,首先要保证机器中安装了以下软件:
1,C/C++编译器。我使用的是Visual-Studio2008 Professional,当然使用VC++2008或者其他版本的VS也可以,不过配置细节上会略有不同。
2,安装CMake最新版本。下载地址: http://www.cmake.org/cmake/resources/software.html 下载 Windows (Win32 Installer) 安装。
3,安装OpenCV2.4.5. 下载地址: http://opencv.org/ 找到Windows版本,解压exe文件得到opencv的文件夹,要记住你自己的安装路径,我的安装路径是:D:2_Software20130415Win7VS2008OpenCVopencv245


1.使用CMake编译openCV:

安装了以上3个软件后,就需要使用CMake编译openCV了
1,  进入cmake的bin文件夹,运行cmake-gui,在where is the source code中填入你的openCV路径:D:2_Software20130415Win7VS2008OpenCVopencv245;where to build the binaries中填入你要存放编译结果的路径:D:2_Software20130415Win7VS2008OpenCVopencv245/vs2008。
2, 点configure,在弹出的对话框中选择Visual Studio 9 2008 (此处根据你的VS版本而定)。
3,如果有红色框显示,继续点击configure。(如果需要,可以BUILD_EXAMPLES选项勾上,其余的使用默认配置即可,如果需要使用OpenNI、OpenGL、QT、TBB库的请自行配置库路径;)

4,configure完成之后,点击generate。
上述步骤完成之后,在vs2008文件夹中,就会看到有OpenCV.sln文件。

—————以下为示意图,非admin实际验证图,所以文字说明和版本不同,仅做示意用————–
下载OpenCV for Windows安装包

  • 运行安装包,解压到D盘根目录(可以修改为其他目录);
  • 运行CMake,设置好OpenCV的源码路径及构建路径,如下图所示:


  • 点击Configure按钮,如下图所示:


  • 在弹出的编译器选择界面中选择Visual Studio 10,如下图所示:


  • 等待配置完成,出现如下界面:


—————以上为示意图,非admin实际验证图,所以文字说明和版本不同,仅做示意用————–

2.编译OpenCV Debug和Release版本库:

2.1使用VS2008打开OpenCV.sln文件,在Debug下,选择OpenCV.sln文件,然后进行如下操作:
在Debug下,选择Solution Explorer里的 Solution OpenCV,点右键,运行”Rebuild Solution”;如编译无错误,再选择INSTALL项目,运行”Build”。


2.2Build模式为Release,重新进行一次构建;

3.配置Windows环境变量:

将D:2_Software20130415Win7VS2008OpenCVopencv245buildx86vc10bin加入到系统环境变量Path中。

具体步骤为:
右键我的电脑->属性->详细设定标签里->环境变量,找到Path,记得不要覆盖或者直接用Path名字添加新环境变量,会覆盖掉,而是要在后面加分号”;”,追加新值。例如指定系统环境变量path的bin文件夹,以前位于编译指定的文件夹中,此次却是D:2_Software20130415Win7VS2008OpenCVopencv245buildx86vc9bin,注意!
注意:1.opencv2.4.3与以前版本添加的环境变量不同,请注意!!!

4.为VS2008 配置openCV环境:

1 打开VS 2008,菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories
2 在Show directories for中,选择include files,加入目录

D:2_Software20130415Win7VS2008OpenCVopencv245buildinclude
D:2_Software20130415Win7VS2008OpenCVopencv245buildincludeopencv
D:2_Software20130415Win7VS2008OpenCVopencv245buildincludeopencv2

3 在show directories for中,选择library files,加入目录D:2_Software20130415Win7VS2008OpenCVopencv245buildx86vc9lib

5.具体OpenCV工程配置或者代码:

5.1 打开VS 2008,创建一个Win32控制台程序OpenCV245ConfigTestProject;
5.2 选择Solution Explorer里的OpenCV245ConfigTestProject项目,点击鼠标右键,选择Properties,选择Linker中Input(调试目录)。
5.3 (非必要,也可在第4步的代码头部添加额外代码实现)在Additional Dependencies 中添加如下目录:
opencv_core245d.lib
opencv_highgui245d.lib
opencv_imgproc245d.lib
opencv_ml245d.lib
opencv_stitching245d.lib

或者
D:2_Software20130415Win7VS2008OpenCVopencv245vs2008libDebugopencv_core245d.lib

D:2_Software20130415Win7VS2008OpenCVopencv245vs2008libDebugopencv_highgui245d.lib
D:2_Software20130415Win7VS2008OpenCVopencv245vs2008libDebugopencv_imgproc245d.lib
D:2_Software20130415Win7VS2008OpenCVopencv245vs2008libDebugopencv_ml245d.lib
D:2_Software20130415Win7VS2008OpenCVopencv245vs2008libDebugopencv_stitching245d.lib

或者
D:2_Software20130415Win7VS2008OpenCVopencv245buildx86vc9libopencv_core245d.lib

D:2_Software20130415Win7VS2008OpenCVopencv245buildx86vc9libopencv_highgui245d.lib
D:2_Software20130415Win7VS2008OpenCVopencv245buildx86vc9libopencv_imgproc245d.lib
D:2_Software20130415Win7VS2008OpenCVopencv245buildx86vc9libopencv_ml245d.lib
D:2_Software20130415Win7VS2008OpenCVopencv245buildx86vc9libopencv_stitching245d.lib

或者 不用在每个工程的Additional Dependencies 追加,而是在代码的头部加上如下代码

#pragma comment(lib, “opencv_core245d”)  
#pragma comment(lib, “opencv_highgui245d”)  
#pragma comment(lib, “opencv_imgproc245d”)  
#pragma comment(lib, “opencv_ml245d”)  
#pragma comment(lib, “opencv_stitching245d”)

注意:(关于额外依赖lib参考这里http://blog.tianya.cn/blogger/post_show.asp?BlogID=1450762&PostID=42564625)

(下文的数字240全改成245即对应OpenCV2.4.5版本)
这里额外添加的,通常需要链接的lib文件只有:opencv_core240d.lib、opencv_imgproc240d.lib、opencv_highgui240d.lib、opencv_objdetect240d.lib(对应Debug)和 opencv_core240.lib、opencv_imgproc240.lib、opencv_highgui240.lib、opencv_objdetect240.lib(对应Release)。

如果用到SIFT或SURF,另外还需要添加:opencv_nonfree240d.lib(对应Debug)和 opencv_nonfree240.lib(对应Release)。

(添加附加依赖项的lib文件)
#ifdef _DEBUG
#pragma comment (lib, “opencv_calib3d240d.lib”)
#pragma comment (lib, “opencv_contrib240d.lib”)
#pragma comment(lib,opencv_imgproc240d.lib”)
#pragma comment (lib, “opencv_core240d.lib”)
#pragma comment (lib, “opencv_features2d240d.lib”)
#pragma comment (lib, “opencv_flann240d.lib”)
#pragma comment (lib, “opencv_gpu240d.lib”)
#pragma comment (lib, “opencv_highgui240d.lib”)
#pragma comment (lib, “opencv_legacy240d.lib”)
#pragma comment (lib, “opencv_ml240d.lib”)
#pragma comment (lib, “opencv_objdetect240d.lib”)
#pragma comment (lib, “opencv_ts240d.lib”)
#pragma comment (lib, “opencv_video240d.lib”)
#else
#pragma comment (lib, “opencv_calib3d240.lib”)
#pragma comment (lib, “opencv_contrib240.lib”)
#pragma comment(lib,opencv_imgproc240.lib”)
#pragma comment (lib, “opencv_core240.lib”)
#pragma comment (lib, “opencv_features2d240.lib”)
#pragma comment (lib, “opencv_flann240.lib”)
#pragma comment (lib, “opencv_gpu240.lib”)
#pragma comment (lib, “opencv_highgui240.lib”)
#pragma comment (lib, “opencv_legacy240.lib”)
#pragma comment (lib, “opencv_ml240.lib”)
#pragma comment (lib, “opencv_objdetect240.lib”)
#pragma comment (lib, “opencv_ts240.lib”)
#pragma comment (lib, “opencv_video240.lib”)
#endif

5.4 测试工程代码如下:

#include “stdafx.h”  
#include <string>  
#include <opencv2opencv.hpp>  

using namespace cv;  
using namespace std;  

//如果已经在工程的额外依赖文件中添加下面的lib库文件,那么这部分不必要  
#pragma comment(lib, “opencv_core245d”)  
#pragma comment(lib, “opencv_highgui245d”)  
#pragma comment(lib, “opencv_imgproc245d”)  
#pragma comment(lib, “opencv_ml245d”)  
#pragma comment(lib, “opencv_stitching245d”)  

int _tmain(int argc, _TCHAR* argv[])
{
     // open the file
         IplImage *img = cvLoadImage(“lena.jpg”);
     if (!img)
     {
         printf(“Error: could not open the image file.n”);
         return 1;
     }
     // display the image
     cvNamedWindow(“Image:”,CV_WINDOW_AUTOSIZE);
     cvShowImage(“Image:”,img);

     // wait for the user to press a key in the GUI window
     cvWaitKey(0);

     // Free the resourse
     cvDestroyWindow(“Image:”);
     cvReleaseImage(&img);

     return 0;
}

太复杂了  。。。

未经允许不得转载:软院网 RuanYuan.Net » 【admin超详细验证版】OpenCV2.4.5+Win7 32bit+VS2008配置说明贴

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
软院网 RuanYuan.Net