簡體   English   中英

按時間從視頻獲取幀(openCV)

[英]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因此,在這種情況下, FrameIndex72.5 ,在這種情況下,我將選擇frameNO:72或73,但是我覺得不夠准確,更好解?

最佳准確的方法是什么?

您擁有的最准確的信息幀時間。 當您說某個事件發生在2500毫秒時,這一次是從哪里來的? 為什么它與您的幀率不一致? 您只有2483ms和2517ms的視頻數據點,沒有辦法解決。

如果要跟蹤視頻上的對象,並且希望將其位置設置為t = 2500,則可以從已知數據點內插該位置。 您可以通過在相鄰幀之間進行線性插值,或者通過在對象軌跡上擬合曲線並求解目標時間來實現。

如果要在t = 2500時重建一個完整的幀,則要復雜得多,但仍然是一個開放的問題。

暫無
暫無

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

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