Есть ли способ показать последний кадр в opencv- python? - PullRequest
0 голосов
/ 27 января 2020

Мне нужно показать последний кадр видео. Я могу вычислить номер последнего кадра вручную и запустить под кодом.

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()

Первая строка кода - ввод вручную.

Есть ли способ получить номер последнего кадра непосредственно для любого видео

1 Ответ

0 голосов
/ 27 января 2020

Поскольку вам нужен последний кадр видео, вы можете использовать VideoCapture :: get со свойством CAP_PROP_FRAME_COUNT . Это даст вам количество кадров в видео. Вы можете попытаться присвоить ее своей переменной следующим образом:

last_frame_num = vs.get(cv2.CAP_PROP_FRAME_COUNT)

По моему мнению, она также должна иметь -1, поскольку CAP_PROP_POS_FRAMES принимает "основанный на 0 индекс фрейма как расшифрован / захвачен следующим ". Тем не менее, приятно видеть, что это работает для вас даже без -1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...