0

我在 Windows 中使用 OpenCV 2.1 和 Visual Studio 2008。我正在尝试从 CCD 相机中获取帧并希望在 Windows 上显示。相机为 PAL 格式。相机正在检测但显示空白的灰色屏幕。

我发现了许多与空白屏幕相关的帖子,但在我的情况下没有一个可以工作。所以发布我发布这个问题。

下面是我的代码:

#include "stdafx.h"
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <iostream>

int main(int argc, char* argv[])
{   
    cvNamedWindow( "mywindow", CV_WINDOW_AUTOSIZE );

    CvCapture* capture = cvCaptureFromCAM(CV_CAP_DSHOW);

    if ( !capture ) {
        fprintf( stderr, "ERROR: capture is NULL \n" );
        getchar();
        return -1;
    }

    while ( 1 ) {
        IplImage* frame = cvQueryFrame( capture );

        if ( !frame ) {
            fprintf( stderr, "ERROR: frame is null...\n" );
            getchar();
            break;
        }
        else
        {
            fprintf( stderr, "Size of camera frame %d X %d\n",frame->width,frame->height );
        }

        cvShowImage( "mywindow", frame );

        if ( (cvWaitKey(10) & 255) == 27 ) break;
    }

    // Release the capture device housekeeping
    cvReleaseCapture( &capture );
    cvDestroyWindow("mywindow");

    return 0;
}

以上代码返回帧大小 320 X 240 但空白屏幕。

带有代码的 USB 网络摄像头的代码工作正常CvCapture* capture = cvCaptureFromCAM(1);

我在我的板上使用 Avermedia Gold 相机卡。那么我是否需要 SDK 才能使用这款相机,或者是否有任何选项可以使用 CCD 相机?

驱动程序已正确安装并检查 EzCaptureVC 应用程序。

4

1 回答 1

2

OpenCV 需要支持您的相机,否则无法保证它可以正常工作:检查兼容性列表

2.1也是非常过时的。我建议您使用 2.3.1 再试一次,因为这方面已经有了一些改进。

于 2012-05-03T19:56:16.937 回答