我正尝试在我的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 –