【发布时间】:2010-10-17 17:59:01
【问题描述】:
我目前正在尝试使用 OpenCV(使用处理库)。 但是,当我尝试运行任何示例(OpenCV 中包含的 Processing 示例或 C 示例)时,我只看到黑色而不是来自相机的输入。相机的 LED 指示灯确实亮起.. 有人遇到过同样的问题吗?我的相机是否与 openCV 不兼容?这是 Acer 水晶眼……
谢谢,
【问题讨论】:
标签: opencv
我目前正在尝试使用 OpenCV(使用处理库)。 但是,当我尝试运行任何示例(OpenCV 中包含的 Processing 示例或 C 示例)时,我只看到黑色而不是来自相机的输入。相机的 LED 指示灯确实亮起.. 有人遇到过同样的问题吗?我的相机是否与 openCV 不兼容?这是 Acer 水晶眼……
谢谢,
【问题讨论】:
标签: opencv
OpenCV 2.1 在 64 位操作系统上仍然存在一些问题。您可以阅读有关该主题的this topic。
如果您正在寻找展示如何使用网络摄像头的工作/可编译源代码,check this out。
如果对您有帮助,请告诉我们。
【讨论】:
我最近遇到了同样的问题。 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/
【讨论】:
我在 Ubuntu 上遇到了同样的问题。我从这里下载了一个代码: http://www.rainsoft.de/projects/pwc.html 它在开始获取帧之前做了一个额外的步骤(我认为设置 FPS)。值得一试,该代码易于阅读并且适用于非飞利浦摄像头。
【讨论】:
OpenCV 仅支持有限数量的相机类型。很可能不支持您的相机。您可以查看源代码或他们的网站,看看哪些是受支持的。
【讨论】: