![](/img/trans.png)
[英]Accessing a matrix element in the “Mat” object (not the CvMat object) in OpenCV C++
[英]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.