方法大体参考了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配置。
其中Include files如下图
Library files如下图
其中$(OPENCV2_DIR)是环境变量中的用户自定义变量(OPENCV2推荐的方法,方便不同计算机的运行)
最后是配置工程属性。为了以后程序复用的方便,OPENCV2推荐了建立配置文件的方法。
首先在Property Manager下右击Debug|Win32选择Add New Property Sheet,在G:\OpenCVProjects下新建OpenCVProjectD
双击文件弹出属性设置窗口
首先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文件当然要在工程路径中