簡體   English   中英

C ++ OpenCV cvMAT播放

[英]C++ OpenCV cvMAT Playback

我有一個cvMat類型的向量,我已經在其中存儲了從計算機網絡攝像頭拍攝的幀。 存儲100幀后,我想播放這些幀。 如果record是我的cvMats載體,我認為可以這樣做:

cvNamedWindow("play-back",CV_WINDOW_AUTOSIZE);
cvMoveWindow("play-back",100,100);
for (vector<Mat>::iterator iter = record.begin(); iter != record.end();++iter) {
   imshow("play-back",*iter);
}

執行后,該程序似乎可以很好地存儲cvMats並從網絡攝像頭獲取輸入,但是當我嘗試進行回放時,該程序似乎很快地執行了那部分代碼-實際上,我很快沒有時間欣賞結果。 我如何才能改進此代碼,以免播放如此匆忙?

您需要控制OpenCV,以便在窗口中實際渲染每個圖像並將其保留一小段時間,然后再切換到下一個圖像。 您應該添加一個對cvWaitKey的調用,延遲為41毫秒(約24 fps)。 然后,您可以檢查cvWaitKey的返回值,以便用戶可以停止播放。 像這樣:

cvNamedWindow("play-back",CV_WINDOW_AUTOSIZE);
cvMoveWindow("play-back",100,100);
for (vector<Mat>::iterator iter = record.begin(); iter != record.end();++iter) {
   imshow("play-back",*iter);
   if( cvWaitKey(41) == 27 ) // ESC
       break;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM