我正在尝试使用内置iSight摄像头在MacBook上创建OpenCV应用程序。我从互联网上抓取了一些非常简单的代码并毫无困难地运行它。 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驱动器?
答案 0 :(得分:0)
这是基于Windows的经验,但我认为主要问题是相同的。 (要从我的笔记本电脑上的罗技USB相机获取输入。)
据我记得; OpenCV不支持多个摄像头,因而不支持摄像头。 我猜您可以使用您显示的代码轻松运行内置摄像头。 我对类似问题的解决方案是停用内置摄像头。为USB摄像头提供cvCaptureFromCAM(0)功能的唯一“可用”插槽。
我希望这可以解决您的问题,即使解决方案有点“笨拙”。