我正在运行此示例代码,该代码只是在屏幕上显示我的网络摄像头图像
CvCapture* capture = 0;
Mat frame, frameCopy, image;
capture = cvCaptureFromCAM( CV_CAP_ANY );
if( !capture )
{
cout << "No camera detected" << endl;
}
cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );
if( capture )
{
for(;;)
{
IplImage* iplImg = cvQueryFrame( capture );
frame = iplImg;
if( frame.empty() )
break;
if( iplImg->origin == IPL_ORIGIN_TL )
frame.copyTo( frameCopy );
else
flip( frame, frameCopy, 0 );
cvShowImage( "result", iplImg );
if( waitKey( 10 ) >= 0 )
break;
}
cvReleaseCapture(&capture);
waitKey(0);
}
}
当我在Windows上运行时,相机会在按预期执行cvReleaseCapture功能后关闭,相反,当在Ubuntu中使用相同的代码时,相机会在程序执行时保持打开状态(LED指示灯亮起且其他程序无法使用)设备)。
没有显示错误消息,这可能是什么问题?
我正在使用OpenCV 2.4.7,我的网络摄像头是Logitech c170