[英]Get the frame from Video by the time (openCV)
我有一個視頻,在這個視頻中有重要的時刻例如:
"frameTime1": "00:00:01.00"
"frameTime2": "00:00:02.50"
"frameTime2": "00:00:03.99"
.
.
.
我得到了FPS ,我得到了totalFrameCount
如果要獲取該時間段內的幀,例如這段時間內發生的幀“ frameTime2”:“ 00:00:02.50”,我將執行以下代碼
FrameIndex = (Time*FPS)/1000; //1000 Because 1 second = 100 milli second
在這種情況下00:00:02.50 = 2500毫秒,而FPS = 29因此,在這種情況下, FrameIndex是72.5 ,在這種情況下,我將選擇frameNO:72或73,但是我覺得不夠准確,更好解?
最佳和准確的方法是什么?
您擁有的最准確的信息是幀時間。 當您說某個事件發生在2500毫秒時,這一次是從哪里來的? 為什么它與您的幀率不一致? 您只有2483ms和2517ms的視頻數據點,沒有辦法解決。
如果要跟蹤視頻上的對象,並且希望將其位置設置為t = 2500,則可以從已知數據點內插該位置。 您可以通過在相鄰幀之間進行線性插值,或者通過在對象軌跡上擬合曲線並求解目標時間來實現。
如果要在t = 2500時重建一個完整的幀,則要復雜得多,但仍然是一個開放的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.