来自:
http://www.opencv.org.cn/index.php/VC_2010_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.4.3
下载OpenCV
- 从本站下载栏目 http://www.opencv.org.cn/index.php/Download 下载 OpenCV for Windows(也即 OpenCV-2.4.3.exe 文件)。
- 将 OpenCV-2.4.3.exe 解压并放到某个目录下,例如
D:\OpenCV
。解压后的目录结构如下图。
配置VC
配置include路径
也即告诉VC去什么地方寻找OpenCV的头文件。
- 打开VC++ 2010 Express,创建一个Win32控制台程序opencvtest;
- 选择Solution Explorer里的opencvtest项目,点击鼠标右键,选择Properties。
- 依次选择“配置属性”->“VC++目录”->“包含目录”,包含
D:\OpenCV\build\include;D:\OpenCV\build\include\opencv;D:\OpenCV\build\include\opencv2
配置lib路径
也即告诉VC去什么地方寻找OpenCV的库文件。
在刚才下载的文件OpenCV-2.4.3.exe 里,已经为VC2010预先编译好了动态库和静态库。因此我们不需要如早先版本那样,自己用cmake编译OpenCV。
- 32位系统 & VC2010,库目录为:
D:\OpenCV\build\x86\vc10\lib
- 64位系统 & VC2010,库目录为:
D:\OpenCV\build\x64\vc10\lib
请根据自己的情况二选一,将库目录输入“属性”->“配置属性”->“VC++目录”->“库目录” 。如下图所示:
设置环境变量
刚才设置的是动态库,因此还需要将OpenCV的dll文件所在的目录加入Path环境变量。dll文件目录如下:
- 32位系统 & VC2010,dll目录为:
D:\OpenCV\build\x86\vc10\bin
- 64位系统 & VC2010,dll目录为:
D:\OpenCV\build\x64\vc10\bin
由于有些函数需要TBB,所以之前的版本需要将tbb所在的目录也加入到环境变量Path中。TBB相关的DLL路径为:
- 32位系统 & VC2010:
D:\OpenCV\build\common\tbb\ia32\vc10
- 64位系统 & VC2010:
D:\OpenCV\build\common\tbb\intel64\vc10
因为2.4.3版本的opencv内嵌了TBB的功能,所以取消了TBB直接安装,这样就不需要再配置TBB环境变量了。
如下图所示将OpenCV的dll文件所在的目录系统环境变量Path中。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效。
使用OpenCV 2.4.3编程
- 选择Solution Explorer里的opencvtest项目,点击鼠标右键,选择Properties。
- 在配置属性-->[链接器 LINKER]的[输入INPUT]中,为项目的Debug配置增加 [附加依赖项 Additional Dependencies]:
opencv_calib3d243d.lib
opencv_contrib243d.lib
opencv_core243d.lib
opencv_features2d243d.lib
opencv_flann243d.lib
opencv_gpu243d.lib
opencv_highgui243d.lib
opencv_imgproc243d.lib
opencv_legacy243d.lib
opencv_ml243d.lib
opencv_objdetect243d.lib
opencv_ts243d.lib
opencv_video243d.lib (可根据实际需要删减)注意,请打开了新编辑窗口(即点击了“...”按钮)“附加依赖项”,并一条一条分别加入,一条一行(一个回车),(注意行末不要加";")否则会出现类似以下错误:1>LINK : fatal error LNK1104: 无法打开文件“…….lib”
- 如果下载的OpenCV不是2.4.3版本,请将"XXX243d.lib"中的"243"更改为对应的版本号,例如:下载OpenCV 2.4.0,则统一改为"XXX240d.lib",否则会出现类似以下错误:1>LINK : fatal error LNK1104: 无法打开文件“XXX.lib”
- 为项目的Release配置增加[附加依赖项 Additional Dependencies]:
opencv_contrib243.lib
opencv_core243.lib
opencv_features2d243.lib
opencv_flann243.lib
opencv_gpu243.lib
opencv_highgui243.lib
opencv_imgproc243.lib
opencv_legacy243.lib
opencv_ml243.lib
opencv_objdetect243.lib
opencv_ts243.lib
opencv_video243.lib (可根据实际需要删减)*
- 编译运行下面的例程,需要将lena.jpg文件放在项目目录下。如果想双击运行exe的话,图片放在.exe同一文件夹内;按F5直接运行程序的话,lena.jpg要放在opencvtest\opencvtest里)。
/***********************************************************************
* OpenCV 2.4.3 测试例程
* 于仕琪 提供
***********************************************************************/
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int _tmain(int argc, _TCHAR* argv[])
{
const char* imagename = "lena.jpg";
//从文件中读入图像
Mat img = imread(imagename);
//如果读入图像失败
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
//显示图像
imshow("image", img);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}
错误提示:
Cannot open include file: 'SDKDDKVer.h': No such file or directory
解决办法:工程属性--》VC++ Directories-->Include Directories:添加:
$(IncludePath)
但再次打开时却看不到:$(IncludePath),在.vcxproj文件中代码比较的时候发现差别
VS2005配置:
1:
IDE--->Tools-->Options,参照以上的配置
VC++目录->包含头文件目录 --》添加头文件目录
VC++目录->包含库文件目录 --》添加LIB库文件目录
2:
工程属性--》Linker-->Input--->Additional Dependencies:
参照以上的添加相应的LIB文件