为啥OpenCV给我一个黑屏?

Posted

技术标签:

【中文标题】为啥OpenCV给我一个黑屏?【英文标题】:Why does OpenCV give me a black screen?为什么OpenCV给我一个黑屏? 【发布时间】:2010-10-17 17:59:01 【问题描述】:

我目前正在尝试使用 OpenCV(使用处理库)。 但是,当我尝试运行任何示例(OpenCV 中包含的 Processing 示例或 C 示例)时,我只看到黑色而不是来自相机的输入。相机的 LED 指示灯确实亮起.. 有人遇到过同样的问题吗?我的相机是否与 openCV 不兼容?这是 Acer 水晶眼……

谢谢,

【问题讨论】:

【参考方案1】:

OpenCV 2.1 在 64 位操作系统上仍然存在一些问题。您可以阅读有关该主题的this topic。

如果您正在寻找展示如何使用网络摄像头的工作/可编译源代码,check this out。

如果对您有帮助,请告诉我们。

【讨论】:

【参考方案2】:

我最近遇到了同样的问题。 OpenCV 库本身只是给了我一个空白屏幕,我必须包含 videoInput 库:

http://muonics.net/school/spring05/videoInput/

我遵循的一个例子是:

#include "stdafx.h"
#include "videoInput.h"
#include "cv.h"
#include "highgui.h"

int main()

    videoInput VI;
    int numDevices = VI.listDevices();
    int device1= 0;
    VI.setupDevice(device1);
    int width = VI.getWidth(device1);
    int height = VI.getHeight(device1);
    IplImage* image= cvCreateImage(cvSize(width, height), 8, 3);
    unsigned char* yourBuffer = new unsigned char[VI.getSize(device1)];
    cvNamedWindow("test");
    while(1)
    
        VI.getPixels(device1, yourBuffer, false, false);
        image->imageData = (char*)yourBuffer;
        cvConvertImage(image, image, CV_CVTIMG_FLIP);
        cvShowImage("test", image);
        if(cvWaitKey(15)==27) break;
    

    VI.stopDevice(device1);
    cvDestroyWindow("test");
    cvReleaseImage(&image);

    return 0;

来自此来源:http://www.aishack.in/2010/03/capturing-images-with-directx/

【讨论】:

【参考方案3】:

我在 Ubuntu 上遇到了同样的问题。我从这里下载了一个代码: http://www.rainsoft.de/projects/pwc.html 它在开始获取帧之前做了一个额外的步骤(我认为设置 FPS)。值得一试,该代码易于阅读并且适用于非飞利浦摄像头。

【讨论】:

【参考方案4】:

OpenCV 仅支持有限数量的相机类型。很可能不支持您的相机。您可以查看源代码或他们的网站,看看哪些是受支持的。

【讨论】:

以上是关于为啥OpenCV给我一个黑屏?的主要内容,如果未能解决你的问题,请参考以下文章

opencv 物体运动检测,摄像头灯亮,却没有画面黑屏

opencv打开视频文件没有声音

linux下cmake编译opencv 为啥这么慢

Opencv 摄像头在捕获一帧图片时,保存的是黑屏,不知道问题,谁能帮忙改正一下啊,在线等!!!

当我要求彩色图像时,Opencv 的 imread 给我一个 2-D Mat 是不是正常?

OpenCV 为啥勾搭上 OpenGL