1,安装opencv时注意勾选 向所有用户添加path,不然要自己手动添加环境变量
验证接下来验证一下OpenCV是否正确安装,在命令控制台 中输入opencv_createsamples.exe
回车运行,安装正确的话,应该出现下面的提示:
如果提示没有找到程序的话,说明你的环境变量有问题,重新设置一下。
2,vs2008的设置,(复制自网上教程,[ ]中表示我的理解说明)
1. 安装完VS2008后,打开VC++ 2008 Express,菜单Tools -> Options -> Projects and Solutions -> VC++ Directories
2. Show directories for选择include files,加入目录:F:\OpenCV2.1\include\opencv
3. Show directories for选择library files,加入目录:F:\OpenCV2.1\lib
上面的F:\OpenCV2.1替换为你的OpenCV的安装目录,关闭VC++ 2008 Express。
到这里,设置就完成了。
利用OpenCV开发程序1. 打开VC++ 2008 Express,创建一个Win32控制台程序template
2. 选择Solution Explorer里的template项目,点击鼠标右键,选择Properties,
3. 在[链接器LINKER]的[输入INPUT]中;
为项目的Debug配置增加依赖的库:
cv210d.lib cvaux210d.lib cxcore210d.lib highgui210d.lib ml210d.lib opencv_ffmpeg210d.lib
[ 只要添加cv210d.lib cxcore210d.lib highgui210d.lib三项就够了 ]
[ release可以不用配置 ]
为项目的Release配置增加依赖的库:cv210.lib cvaux210.lib cxcore210.lib cxts210.lib highgui210.lib ml210.lib opencv_ffmpeg210.lib
【第四步可以省掉】
4. 配置属性-字符集修改为使用“多字节字符集”(由于2008默认是以Unicode字符集编译的)
5. 禁止编译头文件,选择“Not Using……”项,如下所示:【习惯建立工程时选择empty的,则第5、6步没必要】
6. 删除掉没用的文件,最终如下图所示:
上个例程试试能不能运行
#include "cv.h"
#include "highgui.h"
using namespace cv;
int main(){
Mat m;
m.create(400,600,CV_8U);
namedWindow("1");
imshow("1",m);
waitKey();
return 0;
}
下面才是我的痛苦经历,
首先build后报这样的错
1>------ Build started: Project: test1, Configuration: Debug Win32 ------
1>Linking...
1>LINK : fatal error LNK1104: cannot open file 'msvcprtd.lib'
1>Build log was saved at "file://e:\opencv\test1\test1\test1\Debug\BuildLog.htm"
1>test1 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
因为我用同样的安装文件在别人没有vs的机子上顺利运行,猜想可能是自己的软件出了问题,使用vs2008的修复功能,这时虚拟光驱竟然不给力,害我浪费了一张DVD光盘,刻了一张vs2008的盘
然后就成了这样的错
1>------ Build started: Project: test1, Configuration: Debug Win32 ------
1>Linking...
1>LINK : fatal error LNK1104: cannot open file 'kernel32.lib'
1>Build log was saved at "file://e:\opencv\test1\test1\test1\Debug\BuildLog.htm"
1>test1 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
狠狠心,直接卸载重装。想要完全卸载2008还真不是件简单的事,太无耻了。。。反正我是没卸载完,重装后就变成了这样的错
1>c:\program files (x86)\opencv2.1\include\opencv\cvcompat.h(803) : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
1>c:\program files (x86)\opencv2.1\include\opencv\highgui.h(49) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
1>Build log was saved at "file://e:\opencv\test\examp\examp\Debug\BuildLog.htm"
1>examp - 1 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
好吧,连头文件都找不到了,我只能先玩几把真三去了
试着回到起点,编个入门级的cout<<"hello world"<<endl;好吧,又回到原来的问题上了, cannot open file 'msvcprtd.lib'
各种百度,感觉大家都说的不明不白的,最后解决方法:在tool-options - project and solution - c++directors - library files里添加了所有msvcprtd.lib文件的路径,
不幸的是又出现了新问题,程序执行时 找不到cxcore.dll,这个貌似和环境变量的path有关,反正重启后就消失了