我在我的筆記本電腦上安裝了OpenCV 2.1,並試圖實施人臉檢測程序。我爲我的項目使用了Logitech C210。我知道相機是好的,因爲軟件檢測並顯示它,並且在樣本目錄中啓動facedetect.exe顯示相機正在工作。但不知何故,當我在VS2010 Ultimate中使用原始的facedetect.cpp代碼時,我甚至無法使cvCaptureFromCAM工作!這裏是我的代碼:OpenCV 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;
}
}
好了,所以這是不實際的facedetect代碼(太長了),但在這裏凸顯了問題就認爲:
使用斷點我發現價值捕獲在cvCaptureFromCAM之後是0x000000。這不應該發生,是嗎?有人能告訴我發生了什麼事嗎?
許多可能的重複,例如:[OpenCV 2.3.0 +:cvCaptureFromCAM返回null](http://stackoverflow.com/questions/6731593/opencv-2-3-0-cvcapturefromcam-returns-null),[cvCapturefromCAM ()返回NULL](http://stackoverflow.com/questions/6133021/cvcapturefromcam-returns-null)和[cvCreateCameraCapture返回null](http://stackoverflow.com/questions/3197707/cvcreatecameracapture-returns-null) –
早些時候看到,我認爲這是不同的。我在OpenCV 2.1中遇到了問題,而不是2.3。在Windows平臺上。 – Sodrohu
您是否檢查了上述所有3個副本,即不只是第一個? –