VisualStudio2008和OpenCV2.0正确配置

看到很多人在问这个配置,自己也试过很多方法,现将我的方法送上。最早看到该方法是新浪的某一个博客

,“虎”什么的,先感谢他提供的帮助。
1. 用CMake导出VC++ 项目文件
■ 运行cmake-gui,设置路径为OpenCV安装路径(例如:D:Program FilesOpenCV2.0),并创建子

目录 D:Program FilesOpenCV2.0vc2008,用于存放编译结果。
■ 然后点 configure,在弹出的对话框内选择 Visual Studio 9 2008。
■ Microsoft Visual Studio 2008 正式版支持OpenMP,所以ENABLE_OPENMP这个选项要勾上;

如果是Express版本,则不支持OpenMP,所以需要取消ENABLE_OPENMP选项。

建议所有编译失败的都不要勾选该选项。
■ 最后再点击Generate。
2. 编译 OpenCV Debug 和 Release版本库
完成上一步骤后,将在D:Program FilesOpenCV2.0vc2008目录下生成OpenCV.sln的VC Solution

File,请用VC++ 2008 Express打开OpenCV.sln,然后执行如下操作:
■ 在Debug下,选择Solution Explorer里的 Solution OpenCV,点右键,运行”Rebuild Solution”;

如编译无错误,再选择INSTALL项目,运行”Build”。
■ 在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行”Rebuild Solution”;

如编译无错误,再选择INSTALL项目,运行”Build”。
此 时,OpenCV的*d.dll文件(for debug)和*.dll文件(for release)将出现在D:Program Files

OpenCV2.0vc2008bin目录中;OpenCV的*d.lib文件(for debug)和*.lib文件(for release)将

出现在D:Program FilesOpenCV2.0vc2008lib目录;头文件*.h出现在D:Program Files

OpenCV2.0vc2008includeopencv中。
至此Microsoft Visual Studio 2008 调用的OpenCV动态库生成完毕。
三、配置Windows环境变量Path

将D:Program FilesOpenCV2.0vc2008bin加入Windows系统环境变量Path中。
加入后,必须注销当前用户或者重新启动才能生效。
四、为Microsoft Visual Studio 2008 配置OpenCV环境
打开Microsoft Visual Studio 2008,菜单 Tools -> Options -> Projects and Solutions -> VC++

Directories。
■ Show directories for选择include files,加入目录 D:Program Files

OpenCV2.0vc2008includeopencv
■ Show directories for选择library files,加入目录 D:Program FilesOpenCV2.0vc2008lib

五、使用OpenCV 2.0 编程
以后每创建一个OpenCV 的Win32 控制台程序,都需要添加依赖的库
■ 选择Solution Explorer里的 “项目名称”,点击鼠标右键,选择Properties;
■ 为项目的Debug配置增加依赖的库:cxcore200d.lib cv200d.lib highgui200d.lib;
■ 为项目的Release配置增加依赖的库:cxcore200.lib cv200.lib highgui200.lib;

使用OpenCV 2.0编程

   打开VC++ 2008 Express,创建一个Win32控制台程序opencvhello;
选择Solution Explorer里的opencvhello项目,点击鼠标右键,选择Properties;
为项目的Debug配置增加依赖的库:cxcore200d.lib cv200d.lib highgui200d.lib
为项目的Release配置增加依赖的库:cxcore200.lib cv200.lib highgui200.lib
编译运行下面的例程(需要将lena.jpg文件放在项目目录下)。 #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 %sn", imagename);

       return -1;

   }   if( !img.data ) // 检查是否正确载入图像

       return -1;   cv::namedWindow("image", CV_WINDOW_AUTOSIZE); //创建窗口

cv::imshow("image", img); //显示图像   cv::waitKey();   return 0;

}

 

这个测试程序由于转载问题格式不对,可能会编译出错,关键在于cv::这个标头语句,如果提示出错请把所

有CV开头的语句全部回车敲到下一行,原因我觉得是前面的注释语句的影响,我遇到过一次,解决了。或

者自己修改一下,把RETURN什么的返回去掉,留下最简洁的输出读入图像语句。例:注意那个第三行

using namespace前面的//就是个问题,回车吧=把句子敲到下一行你就看到了问题所在。

调试成功则说明配置完毕。最后给个建议和评价,网上的其他方法很多,也不能说都不对,但是既然找到这

个题目了说明大家的时间都不充裕,在配置上浪费时间着实让人着急,这个方法我试过几次了(系统重装等

原因),添加库文件等都是最简的,没添加多少,所以拿出来让看到的人尽快配置好开始写程序,不要再浪

费时间了。我的配置环境是VS2008专业版64位,WIN7专业版64位,CV2.0,cmaker2.8