簡體   English   中英

有沒有辦法在 opencv-python 中顯示最后一幀?

[英]Is there a way to show last frame in opencv-python?

我需要顯示視頻的最后一幀。 我可以手動計算最后一幀編號並在代碼下運行。

last_frame_num = duration_in_seconds * video_fps #manual entry

vs = cv2.VideoCapture('test.mp4')
vs.set(cv2.CAP_PROP_POS_FRAMES, last_frame_num)

while True:
    ret, frame = vs.read()
    if ret:
        cv2.imshow('last_frame', frame)
    if cv2.waitKey(0) == 27:
        break
vs.release()
cv2.destroyAllWindows()

第一行代碼是手動輸入。

有沒有辦法可以直接獲取任何視頻的最后一幀編號?

由於您想要視頻的最后一幀,您可以使用VideoCapture::get和屬性CAP_PROP_FRAME_COUNT 這將為您提供視頻中的幀數。 您可以嘗試將其分配給您的變量,如下所示:

last_frame_num = vs.get(cv2.CAP_PROP_FRAME_COUNT)

在我看來,它也應該有一個-1 ,因為CAP_PROP_POS_FRAMES需要“接下來要解碼/捕獲的幀的基於 0 的索引”。 但是,很高興看到即使沒有 -1 它也對您有用。

暫無
暫無

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

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