2016-02-23 60 views
1

我使用以下代碼從MS VC++ 2012中使用openCV3從USB攝像頭捕獲視頻幀。但問題是,有時我能夠顯示捕獲的幀@ 30 fps,但有時會出現I以非常低的fps(或高延遲)獲得黑幀。換句話說,該程序是隨機的。你知道我怎麼能解決這個問題嗎?我嘗試了不同的解決方案,建議在stackoverflow或其他地方,但他們都沒有解決這個問題。OpenCV VideoCaptures有時會返回空白幀

VideoCapture v(1); 
v.set(CV_CAP_PROP_FRAME_WIDTH, 720); 
v.set(CV_CAP_PROP_FRAME_HEIGHT, 480); 
if(!v.isOpened()){ 
    cout << "Error opening video stream or file" << endl; 
    return; 
} 

Mat Image; 
namedWindow("win",1); 

while(1){ 
    v >> Image; 
    imshow("win", Image); 
} 

回答

0

試試這個:

while(1){ 
    v >> Image; 
    imshow("win", Image); 
    char c=waitKey(10);//add a 10ms delay per frame to sync with cam fps 
    if(c=='b') 
     { 
      break;//break when b is pressed 
     } 
}