我是opencv新手。我想从网络摄像头(索引it-105wc)捕获图像。我在windows xp上使用Microsoft visual c++ 2008 express edition。构建解决方案没有问题,但是当我尝试调试代码时,它给出了以下内容(这发生在执行cvCaptureFromCAM(CV_CAP_ANY);)
Loaded C:Program FilesCommon FilesAheadDSFilterNeVideo.ax
, Binary is not with debug information.
然后退出代码。
所以,我的代码有任何问题,还是它与网络摄像头的兼容性问题?
#include "stdafx.h"
#include<stdio.h>
#include <cv.h>
#include <highgui.h>
void main(int argc,char *argv[])
{
int c;
IplImage* color_img;
CvCapture* cv_cap = cvCaptureFromCAM(CV_CAP_ANY);
if(!cv_cap)
{
printf( "ERROR: Capture is null!n");
}
cvNamedWindow("Video",0); // create window
for(;;)
{
color_img = cvQueryFrame(cv_cap); // get frame
if(color_img != 0)
cvShowImage("Video", color_img); // show frame
c = cvWaitKey(10); // wait 10 ms or for key stroke
if(c == 27)
break; // if ESC, break and quit
}
/* clean up */
cvReleaseCapture( &cv_cap );
cvDestroyWindow("Video");
}
这个错误信息似乎与nero刻录工具的视频编解码器有关。如果你不需要这个编解码器,你可以注销它,看看,如果解决你的问题。
为此,在命令行上执行以下命令:
regsvr32 /u "C:Program FilesCommon FilesAheadDSFilterNeVideo.ax"
你应该看到消息:
DllUnregisterServer in C:Program FilesCommon FilesAheadDSFilterNeVideo.ax succeeded.
要撤消这个,执行
regsvr32 "C:Program FilesCommon FilesAheadDSFilterNeVideo.ax"