今天调试了一个在一个界面中显示多个窗口的程序,需要调用USB摄像头。部分代码:
capture = cvCreateCameraCapture( 0 );
if(!capture){
cout<<"NO camera"<<endl;
}
IplImage* frame=0;
frame=cvQueryFrame(capture);
while(1){
cvQueryFrame(capture);
if(!frame){break;}
}
一开始调试了一遍,显示正常,但是后来在调试就出现了灰屏,返回值为-1,显示没有帧被读取到。
我就开始从头到尾把代码检查了一遍,设了很多的断点,这其实一点用没有,因为代码根本没错。在网上找很久也没有什么具体的解决办法。
我尝试重启电脑也没有用。
然后我就把摄像头的USB线给拔了,重新插上之后就可以用了!
我就一直想,最终明白:是摄像头的驱动出现问题。因为不是大厂出品,所以驱动一般都是不完整的,有时候就会出现灰屏等情况。
希望大家遇到此类问题千万不要着急,因为急也没有用,我们还是要冷静,把所以可能出错的方向都过滤一遍。
祝大家一切顺利。