【发布时间】:2011-10-08 14:37:30
【问题描述】:
我的笔记本电脑上安装了 OpenCV 2.1,并正在尝试实现人脸检测程序。我正在为我的项目使用罗技 C210。我知道相机没问题,因为软件检测并显示它,并且在示例目录中启动 facedetect.exe 显示相机正在工作。但不知何故,当在我的 VS2010 Ultimate 中使用原始 facedetect.cpp 代码时,我什至无法让 cvCaptureFromCAM 工作!这是我的代码:
#include "stdafx.h"
#include <iostream>
#include "cv.h"
#include "highgui.h"
using namespace std;
using namespace cv;
int main(int, char**) {
IplImage* frame;
// CvCapture* cap = cvCaptureFromCAM(-1);
// cvNamedWindow( "Example2_9", CV_WINDOW_AUTOSIZE );
CvCapture* capture;
cvWaitKey(20);
capture = cvCreateCameraCapture( -1 ); //yes, if 0 doesn't work try with -1
//assert( capture != NULL );
for(;;) {
frame = cvQueryFrame(capture);
if(frame == NULL)
return -1;
imshow("cap", frame);
if(waitKey(30) >= 0)
break;
}
}
好的,这不是实际的面部检测代码(它太长了),但它突出了它认为的问题:
使用断点发现 cvCaptureFromCAM 后捕获的值是 0x000000。这不应该发生,是吗?谁能告诉我这是怎么回事?
【问题讨论】:
-
之前看到过,我觉得已经够不一样了。我在 OpenCV 2.1 中遇到问题,而不是 2.3。在 Windows 平台上。
-
您是否检查了上述所有 3 个重复项,即不只是第一个?
-
我做到了。其中两个在 Ubuntu 上运行。我的是 Windows 7 32 位。另一个没有指定她的操作系统,但无论哪种方式,该帖子对我都没有帮助。
-
表示无法打开相机。要么你没有摄像头(!),要么驱动程序不工作,或者其他一些应用程序(通常是 skpe)抓住了摄像头
标签: c++ windows image-processing opencv camera