弄了一个晚上终于搞定配置,知道这个过程对于初学者的重要性 故 贴出来以飨读者。
本人配置
visual studio 2010 ultimate + windows7 家庭版(x64)+ opencv2.3.1
先说正确步骤:
http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.3.1
按着上面来 下好 解压 cmake 弄一下也不费事。
配置不按上面说的,按如下方法配置,下面的所有路径D:\OpenCV 你可以改成你安装的路径,最好贴到记事本 替换掉,方便,( 以后还要用的,貌似每新建个项目都要配置一次)
1环境变量
计算机 右键 ->属性->左侧 高级系统设置 ->高级-> 下面 环境变量 ->
在用户变量h中新建path加上D:\OpenCV\build\x64\vc10\bin;D:\OpenCV\build\common\tbb\intel64\vc10
在系统变量中找到path 加上D:\OpenCV\build\x64\vc10\bin;D:\OpenCV\build\common\tbb\intel64\vc10
注意分号 别落下 注意分号位英文字符
重启(一定要重启)
2 打开vs2010 新建项目 win32控制台应用程序 输入名称 确定 下一步 完成(也可不要预编译 弄个空项目。。等下再说这样碰到的问题)
3 因为2010不能按照上连接的方法配置路径 所以只能按下面步骤
右键项目 ->属性 弹窗 右上侧 -> 配置管理器 点开->活动解决方案平台 点下拉选择-> 新建 出现 键入或选择新平台 选择 x64(没有的话输入), 从此处复制设置选择 win32 下面 创建新的项目平台 打钩 确定 关闭
4右键项目->属性 弹窗 左侧 配置属性 展开 -> vc++目录 点开 右侧 包含目录 后面加上如下目录
D:\OpenCV\build\include;D:\OpenCV\build\include\opencv;D:\OpenCV\build\include\opencv2
包含库 的后面添上如下目录
D:\OpenCV\build\x64\vc10\lib
5右键项目->属性 弹窗 左侧 配置属性 展开 ->链接器展开->[输入,为项目的Debug配置(就是这个对话框坐上方配置选择活动的debug) 附加依赖项 后面增加下面的lib:
opencv_calib3d231d.lib;opencv_contrib231d.lib;opencv_core231d.lib;opencv_features2d231d.lib;opencv_flann231d.lib;opencv_gpu231d.lib;opencv_highgui231d.lib;opencv_imgproc231d.lib;opencv_legacy231d.lib;opencv_ml231d.lib;opencv_objdetect231d.lib;opencv_ts231d.lib;opencv_video231d.lib
为项目的Release配置(就是这个对话框坐上方配置选择release)增加[附加依赖项 :opencv_calib3d231.lib;opencv_contrib231.lib;opencv_core231.lib;opencv_features2d231.lib;opencv_flann231.lib; opencv_gpu231.lib; opencv_highgui231.lib; opencv_imgproc231.lib; opencv_legacy231.lib; opencv_ml231.lib; opencv_objdetect231.lib;opencv_ts231.lib;opencv_video231.lib
这样就ok了 粘贴个程序测试吧~~
#include "stdio.h"
#include "tchar.h"
#include <highgui.h>
int main(int argc, _TCHAR* argv[])
{
int c;
// allocate memory for an image
IplImage *img;
// capture from video device #1
CvCapture* capture = cvCaptureFromCAM(1);
// create a window to display the images
cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
// position the window
cvMoveWindow("mainWin", 5, 5);
while(1)
{
// retrieve the captured frame
img=cvQueryFrame(capture);
// show the image in the window
cvShowImage("mainWin", img );
// wait 10 ms for a key to be pressed
c=cvWaitKey(10);
// escape key terminates program
if(c == 27)
break;
}
return 0;
}
结果应该是用你电脑的摄像头显示视频。
把错误经历发上
1:分号什么的不注意,忘记重启,可能会出现无法打开 某dll 或者 obj的情况。
2:因为没改动位X64平台用测试程序时 会出现错误:“模块计算机类型“X86”与目标计算机类型“x64”冲突”
3:我没怎么用过vs,不要预编译 弄个空项目。。结果碰到了这种 无法打开包括文件:"stdafx.h" :No such file or director
碰到这种情况 时候将程序里 include“stdafx.h” 改成
#include "stdio.h"
#include "tchar.h"
即可。