opencv中的网络摄像头使用情况

时间:2013-01-11 15:58:32

标签: opencv webcam

我是opencv的新手。 我想从网络摄像头捕获图像(intex it-105wc)。 我在windows xp上使用Microsoft visual c ++ 2008 express edition。 构建解决方案没有问题,但是当我尝试调试代码时,它会给出以下内容(这会在执行cvCaptureFromCAM(CV_CAP_ANY)时发生;)

已加载C:\Program Files\Common Files\Ahead\DSFilter\NeVideo.ax,Binary未使用调试信息构建。

然后退出代码。

所以,我的代码有什么问题,还是与网络摄像头的兼容性问题?

#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");
}

1 个答案:

答案 0 :(得分:0)

此错误消息似乎与来自Nero刻录工具的视频编解码器有关。 如果您不需要此编解码器,您可以取消注册它,看看是否能解决您的问题。

为此,请在命令行上执行以下命令:

regsvr32 /u "C:\Program Files\Common Files\Ahead\DSFilter\NeVideo.ax"

你应该看到消息:

DllUnregisterServer in C:\Program Files\Common Files\Ahead\DSFilter\NeVideo.ax succeeded.

要撤消此操作,请执行

regsvr32 "C:\Program Files\Common Files\Ahead\DSFilter\NeVideo.ax"