学习OPENCV(一):OpenCV2.4.2+VS2008开发环境搭建

    方法大体参考了http://www.opencv.org.cn/index.php/VC_2010_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.4.3#.E9.85.8D.E7.BD.AEVC所示的方法。最初参考的是http://blog.csdn.net/aboelf/article/details/7733026,但是当执行到生成了opencv解决方案后,始终无法生成\install\文件夹,因此直接使用了官方编译好的库,但是考虑到以后移植的需要,还是要搞清楚。

1、OpenCV2.4.2的安装

    首先到www.opencv.org下载最新的opencvXXX.exe,.exe表明官方已经把库编译好了。运行它把库解压到C:\OpenCV2.4\目录下。

    然后配置环境变量。将OpenCV2.4的动态库路径加载到全局搜索路径PATH中,有了linux的经验,这点就容易理解了。

  • 32位系统 & VC2008,库目录为:C:\OpenCV2.4\build\x86\vc9\bin
  • 64位系统 & VC2008,库目录为:C:\OpenCV2.4\build\x64\vc9\bin

  由于有些函数还需要TBB,所以将TBB所在的目录也加到PATH中。

  • 32位系统 & VC2008:C:\OpenCV2.4\build\common\tbb\ia32\vc9
  • 64位系统 & VC2008:C:\OpenCV2.4\build\common\tbb\intel64\vc9

2、工程的配置

  工程的配置参考了OpenCV2 Computer Vision Application Programming Cookbook上的方法。

  首先建立一个空白工程。新建一个目录G:\OpenCVProjects来管理所有的项目,第一个项目取名为myFirstOpenCVConsoleApp。注意不选Precompiled header,这个头文件是VS用来优化编译速度。

  然后是配置全局属性,这一点VS2008和VS2010有不同,VS2010的VC++ Directories在Common Properties中(OPENCV2 P14),但是VS2008的则在Tools->Options->Projects and Solutions->VC++ Directories中。选择右上角的Show directories for:下拉列表分别选择Include files和Library files配置。

image

   其中Include files如下图

image

   Library files如下图

image

其中$(OPENCV2_DIR)是环境变量中的用户自定义变量(OPENCV2推荐的方法,方便不同计算机的运行)

image

  最后是配置工程属性。为了以后程序复用的方便,OPENCV2推荐了建立配置文件的方法。

  首先在Property Manager下右击Debug|Win32选择Add New Property Sheet,在G:\OpenCVProjects下新建OpenCVProjectD

image

双击文件弹出属性设置窗口

首先C/C++->General->Additional Include Directories加入"$(OPENCV2_DIR)\include"

Linker->General->Additional Library Directories加入"$(OPENCV2_DIR)\x86\vc9\lib"

经验证,这两步不做也可以

然后添加编译输入的外部库Linker->Input->Additional Dependencies

opencv_core242d.lib
opencv_highgui242d.lib
opencv_imgproc242d.lib
opencv_features2d242d.lib
opencv_calib3d242d.lib

基本上是需要什么加入什么。

最后在Release | Win32下建立类似的文件OpenCVProject,只是Input的外部库没有d。

3、程序的编写

在Source Files下添加main.cpp

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

int main()
{
    cv::Mat image = cv::imread("img.jpg");
    cv::namedWindow("My Image");
    cv::imshow("My Image", image);
    cv::waitKey(5000);

    return 1;
}

上面头文件的引用方式是Opencv2.0后有所变化的。img.jpg文件当然要在工程路径中

原文地址:https://www.cnblogs.com/zjgtan/p/3000010.html