今天搞了整整一天,win7 64位调试opencv和vs2010,郁闷啊。。。。
先说一下win7 64位加载opencv的步骤,给链接http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=15152
按照链接里给出的步骤安装就OK了
这是一个打开摄像头的测试程序:
#include "stdafx.h"
#include <highgui.h>
int _tmain(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;
}
怎么样,运行后看到自己有多帅了吧!!!看不到,没关系,下面的几个解决办法也许能帮上忙。
下面是我碰到的问题和找到的解决办法
问题一:无法找到opencv_highgui321.dll
解决办法:系统环境变量没设置吧,最好是用户变量和系统变量都添加path与opencv路径。
问题二:找不到tbb_debug.dll文件
解决办法:copy别人的
方法一:在opencv-2.3.1\build\common\tbb\intel64\vc10的下面有个tbb.dll文件,把它复制到你的工程debug目录下改成tbb_debug即可。
方法二:下载一个Intel Tbb 3.0,下载见http://pan.baidu.com/share/link?shareid=232085&uk=487907638 。下载完成后解压,在bin文件夹下面对应的文件夹里面你就能找到tbb_debug.dll,把tbb_debug.dll拷贝到OpenCV 2.3 的build/common/tbb目录下的对应文件夹里面即可。
红色字是非常注意项,intel64对应64位系统,如果是32位,文件目录则是opencv-2.3.1\build\common\tbb\ia32\vc10 ,vc10对应vs2010,不要弄错,否则会造成问题三的发生(这个折磨我时间最长)
问题三:运行程序时弹出XXXXXX.exe运行错误。。0xc000007b
解决办法:这个很蛋疼,主要毛病出在tbb_debug.dll上,具体解决办法见问题二。
问题四:加载项后面跟了这么一句话“Cannot find or open the PDB file”
解决办法:网上查说是CMake时问题,搞得我差点要自己编译opencv了,后来发现不需要编译opencv,本来就是解压出来就能用的,问题不在这里。
我下载的是opencv2.3.1在路径\OpenCV2.3\build\x64\vc10\bin的文件夹里,每个文件有两个版本,例如opencv_highgui231.dll和opencv_highgui231d.dll问题就出在这里,我在重新展开“配置属性”“Configuration Properties”列表,再展开“链接器”“Linker”列表,选择“常规”“Input”
在“附加依赖项”“ Additional Dependencies”中添加:。。。。。
好吧我在这步中加载的都是带d的,带d的应该似乎debug版本,要用release版本,就是不加d的,改过来问题应该就能解决了