为啥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 摄像头在捕获一帧图片时,保存的是黑屏,不知道问题,谁能帮忙改正一下啊,在线等!!!