2012-08-23 13 views
3

我有一個問題。 cvQueryFrame究竟做了什麼?據我瞭解,它從緩衝區中的「已捕獲幀」中選取一幀,對吧?cvQueryFrame是迷人

以我應用中,每個幀的處理需要1秒,但我的相機的FPS爲30fps。如何在1秒結束後/當前幀的相關處理過程結束時再進行下一次捕捉?我不想要舊的框架!

現在,因爲我看到了第二循環運行(當我再次打電話cvQueryFrame,它檢索被抓獲近1秒回的框架,從緩衝區。

我怎樣才能做到一切REAL TIME? ?任何幫助非常感謝!

+0

從文檔:「這個功能僅僅是一個GrabFrame和RetrieveFrame的組合,但在一個叫」。你有沒有嘗試過單獨使用GrabFrame和RetrieveFrame?請檢查此:http://stackoverflow.com/questions/7248058/does-cvqueryframe-have-buffer-for-frames-in-advance – Sassa

回答

0

這將基本上給你的序列幀,所以不管需要多長時間來處理,也不會丟幀。請記住,API也用於從視頻中讀取在這種情況下它是有道理的。

可以連續撥打cvQueryFrame,做一個單獨的線程處理的一種或者,您可以使用系統API(例如, DirectShow)或相機的API來讀取數據,這通常會使丟幀更容易。