我要過濾的視頻幀。
for(;;)
{
cap.read(frame);
medianBlur(frame,framedst,5);
imshow("frame",frame);
imshow("framedst",framedst);
if(waitKey (30) >= 0) break;
}
waitKey(30)
是什麼意思?因爲如果我註釋掉if(waitKey (30) >= 0) break;
這一行,上面的代碼不起作用!
我要過濾的視頻幀。
for(;;)
{
cap.read(frame);
medianBlur(frame,framedst,5);
imshow("frame",frame);
imshow("framedst",framedst);
if(waitKey (30) >= 0) break;
}
waitKey(30)
是什麼意思?因爲如果我註釋掉if(waitKey (30) >= 0) break;
這一行,上面的代碼不起作用!
函數waitKey()
等待「延遲」(此處爲30毫秒)的按鍵事件。正如在OpenCV documentation中所解釋的那樣,HighGui(imshow()
是HighGui的函數)需要定期調用waitKey,以便處理其事件循環。
也就是說,如果你不叫waitKey,HighGui不能處理窗口事件,如重繪,調整大小,輸入事件等,所以就叫它,即使有1ms的延遲:)
[這個問題](HTTP: //stackoverflow.com/questions/5217519/opencv-cvwaitkey)詢問'waitkey',我相信這個答案解釋了爲什麼你的'imshow'不工作。引用答案,* opencv新手常犯的錯誤是通過視頻幀在循環中調用cv :: imshow(),而無需使用cv :: waitKey(30)跟蹤每次繪製。在這種情況下,屏幕上沒有任何內容出現,因爲highgui從來沒有時間處理來自cv :: imshow()的繪製請求。* – chris
沒錯,我不使用OPENCV很多 – Imbarfar
對我來說這絕對不是。 – chris