【问题标题】:opencv - cvCaptureFromCAM(CV_CAP_DSHOW) capture blank frameopencv - cvCaptureFromCAM(CV_CAP_DSHOW) 捕获空白帧
【发布时间】:2012-05-13 00:36:07
【问题描述】:

我在 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 但空白屏幕。

使用代码 CvCapture* capture = cvCaptureFromCAM(1); 的 USB 网络摄像头代码运行良好

我在我的板上使用 Avermedia Gold 相机卡。那么我需要SDK来使用这个摄像头还是有任何选项可以使用CCD摄像头??

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

【问题讨论】:

    标签: c++ opencv screen


    【解决方案1】:

    OpenCV 需要支持您的相机,否则无法保证它能够正常工作:查看compatibility list

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

    【讨论】:

    • 感谢卡尔菲利普的快速回复。我检查了相机兼容性列表,但我的相机不在该列表中。所以我将使用opencv 2.3.1,我会告诉我们我的结果但是让我添加一些关于我之前遇到的结果的更多信息。我当前指定的代码在几天前使用不同的相机采集卡可以正常工作。我更改了相机采集卡以获得更高的功能,但我丢失了相机的提要。
    • 好的,这样可以确认问题出在 camera & opencv,而不是您的代码和 opencv。
    • 现在我更改视频捕获模式。我尝试使用 videoInput 从摄像头捕获并且它正在工作......但出现的一个问题是,我无法更改 videoInput 中的视频大小。它以 320X280 默认尺寸显示,我需要 640X480 尺寸。有什么帮助吗??????
    • 是的,但您可能不喜欢它:Increasing camera capture resolution in OpenCV。最简单的方法是使用cvSetCaptureProperty() 设置新大小,但如果这不起作用,您应该阅读其余帖子。
    猜你喜欢
    • 1970-01-01
    • 2021-04-22
    • 2014-06-03
    • 2012-05-21
    • 2021-11-26
    • 2011-10-08
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多