以下代码在USB相机运行时正常工作,但是当移除USB相机时出现问题。断开USB相机后,我看到一个空白图像,但程序应该停止,因为和都应该为真。然而由于某种原因两者都为假!这是什么原因呢?
如何在USB相机拔出时停止程序?
VideoCapture cap_cam1(0);
Mat img_cam1;
while(true)
{
cap_cam1 >> img_cam1;
if (img_cam1.empty() || !cap_cam1.isOpened())
{
cap_cam1.release();
break;
}
else {
imshow("Live",img_cam1);
if (!img_cam1.isContinuous())
break;
img_cam1.empty();
img_cam1.release();
if(waitKey(33)==27) break;
}
}
如何在USB相机拔出时停止程序?
grab
和retrieve
的组合,而不是>>
运算符吗? - sgarizviisOpened
的文档中可以看到:如果之前调用了VideoCapture构造函数或VideoCapture::open并成功,该方法将返回true。因此,在检查isOpened
之前,您可能需要更改方法以调用open
。如果这解决了第二个问题,请告诉我。 - TheLethalCoder