学习记录
之前在网上查了很多次,一直也没找到解决的方法,偶然之间,突然想到了方法。
错误
libv4l2: error setting pixformat: Device or resource busy
VIDEOIO ERROR: libv4l unable to ioctl S_FMT
libv4l2: error setting pixformat: Device or resource busy
libv4l1: error setting pixformat: Device or resource busy
VIDEOIO ERROR: libv4l unable to ioctl VIDIOCSPICT
现象:有时摄像头无法使用,只有插拔才能解决。
原因及解决方法
之前一直不知道为什么会有这个报错,最近看了看相关的书,才发现我少了一行关键性的代码。
int main( int argc, const char** argv )
{
VideoCapture cap;
cap.open(0);
if(!cap.isOpened())
return -1;
while(1)
{
Mat frame;
cap >> frame;
imshow("Video", frame);
if(waitKey(30) >= 0)
break;
}
cap.release();
return 0;
}
其中,关键性的一句cap.release();
用于释放摄像机的cap。
如果不释放的话,就会产生上面的错误。