装了个VS2010+OpenCV2.4.6,累死我了,出了各种状况。就我自己在安装、编译过程中遇到的问题,简单的做个罗列,或是备份,防止遗忘、共同分享吧。
1.OpenCV的安装与配置问题
(1)首先下载安装OpenCV2.4.6(地址:http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.6/OpenCV-2.4.6.0.exe/download);
(2)设置环境变量,通过计算机右键属性->高级系统设置->高级->环境变量,双击path ,添加 D:\opencv\build\x86\vc10\bin。(64位的将x86改为x64,其他不变,以下路径修改一样)
(3)建Win32 Console Application控制台程序。
(4)配置OpenCV(三种方法)
a.(建议)配置一次,以后就不用再配置了,属性管理器->Debug点开->右击Microsoft.Cpp.Win32.user属性->VC++目录->包含目录(添加:D:\opencv\build\include;D:\opencv\build\include\opencv;D:\opencv\build\include\opencv2;)->库目录(添加:D:\opencv\build\x86\vc10\lib)注意:有的作者写过要加D:\opencv\build\x86\vc10\ststiclib,但我加了会出错,后来百度了一下,是有问题的,不能同时包含这两个lib,所以只需一个。有个缺陷就是debug与release不能同时改。(后来发现自己傻X了,只要把relese和debug的lib都放进去,就好了)
b.导入属性表。属性管理器->右击Debug添加现有属性表(存于D盘根目录下的属性表http://download.csdn.net/detail/u012756029/6776791;如果你的opencv不是安装在D盘根目录下,不可用;但你可以自己建立属性表,方法如下:属性管理器->右击Debug建新项目属性表,然后按一的方法配置);
c.正常的每次都添加包含目录和库目录,不建议,所以不介绍。
(5)添加链接器附加依赖项。属性管理器->Debug点开->右击Microsoft.Cpp.Win32.user属性->链接器->附加依赖项,添加:
opencv_calib3d246d.lib opencv_contrib246d.lib opencv_core246d.lib opencv_features2d246d.lib opencv_flann246d.lib
opencv_calib3d246d.lib opencv_contrib246d.lib opencv_core246d.lib opencv_features2d246d.lib opencv_flann246d.lib
opencv_gpu246d.lib opencv_highgui246d.lib opencv_imgproc246d.lib opencv_legacy246d.lib opencv_ml246d.lib
opencv_objdetect246d.lib opencv_ts246d.lib opencv_video246d.lib
(6)测试
#include "stdafx.h"
#include <opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
Mat img = imread("OpenCVTest.bmp");
if(img.empty())
{
cout<<"error";
return -1;
}
imshow("测试图片",img);
waitKey();
return 0;
}
2.一些注意事项
(1)打开一些其他版本的程序,记得修改链接器输入附加依赖项。解决方案资源管理器->项目名右击,属性->链接器->输入->附加依赖项->添加你的版本的lib(如我的是opencv2.4.6:opencv_calib3d246d.lib opencv_contrib246d.lib opencv_core246d.lib opencv_features2d246d.lib
opencv_flann246d.lib opencv_gpu246d.lib opencv_highgui246d.lib opencv_imgproc246d.lib opencv_legacy246d.lib
opencv_ml246d.lib opencv_nonfree246d.lib opencv_objdetect246d.lib opencv_photo246d.lib opencv_stitching246d.lib
opencv_ts246d.lib opencv_video246d.lib opencv_videostab246d.lib)