我正嘗試在我的MacBook上用內置的iSight攝像頭創建一個OpenCV應用程序。我從互聯網上抓取了一些非常簡單的代碼,並且毫不費力地運行它。 OpenCV自動發現內置網絡攝像頭並正常運行,但無法使用我的USB網絡攝像頭。OpenCV找不到我的USB網絡攝像頭
#include <stdio.h>
#include <opencv.hpp>
int main(int argc, char **argv)
{
CvCapture *capture = 0;
IplImage *frame = 0;
int key = 0;
/* initialize camera */
capture = cvCaptureFromCAM(0);
/* always check */
if (!capture) {
fprintf(stderr, "Cannot open initialize webcam!\n");
return 1;
}
/* create a window for the video */
cvNamedWindow("Test", CV_WINDOW_AUTOSIZE);
while(key != 'q') {
/* get a frame */
frame = cvQueryFrame(capture);
/* always check */
if(!frame) break;
/* display current frame */
cvShowImage("Test", frame);
/* exit if user press 'q' */
key = cvWaitKey(1);
}
/* free memory */
cvDestroyWindow("Test");
cvReleaseCapture(&capture);
return 0;
}
我編譯如下:
g++ webcam.c -o webcam -I/opt/local/include/opencv2 -I/opt/local/include -L/opt/local/lib -lopencv_core -lopencv_highgui
根據該文件,通過改變線路capture = cvCaptureFromCAM(0);
到 capture = cvCaptureFromCAM(1);
我應該能夠訪問我已插入其它網絡攝像頭,但在運行程序給我的錯誤信息:Warning: Max Camera Num is 0; Using camera 0
我可以採取什麼步驟讓OpenCV認識到我有另一臺相機連接到我的USB驅動器?
其他應用可以看到您的攝像頭嗎?對不起,我不知道如何在OSX上發現攝像頭的細節,但你所做的一般是正確的 –
我從http://webcam-osx.sourceforge.net/得到了應用程序macam,它可以使用該設備,但它具有用Objective-C編寫的相機的軟件驅動程序。我是否需要編寫自己的相機驅動程序? – Timulus
openCV使用系統的相機接口(Directshow在窗口上,不知道在OSX上),請嘗試在這裏問:http://tech.groups.yahoo.com/group/OpenCV/messages –