2016-02-23 8 views
1

Я использую следующий код для захвата видеокадров с веб-камеры USB с помощью openCV3 в MS VC++ 2012. Но проблема в том, что иногда я могу отображать захваченные кадры @ 30 кадров в секунду, но иногда я получить черные кадры с очень низким 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 
     } 
}