關於opencv攝像頭圖像顯示 常常出現select timeout的問題

最近在玩opencv攝像頭人臉識別,我只調用了一個簡單的打開攝像頭程序視頻

攝像頭過不了多久就會出現select timeout it

這是攝像頭跟電腦兼容很差的問題嗎?opencv

我是想在主程序監測這個select timeout 狀況的發生,同時重啓攝像頭,可是這個狀況我該怎麼去發現呢??select


int main()
{
    cvNamedWindow("AVI", CV_WINDOW_AUTOSIZE);
    CvCapture* capture = cvCreateCameraCapture(0);  //cvCreateFileCapture("1.AVI");  
        //從文件中獲取視頻,從攝像頭中就用cvCreateCameraCapture(0)  
    IplImage* frame;


    while(1)
    {
        frame = cvQueryFrame(capture);
        if(!frame)
        {
            break;
        }
        cvShowImage("AVI", frame);


        char c = cvWaitKey(33);//33也能夠用來控制幀率  
        if(c == 27)
        {
            break;//注意:27表明ESC鍵  
        }
    }


    cvReleaseCapture(&capture);
    cvDestroyWindow("AVI");


    return 0;
}
程序