Почему этот код не возвращает правильный видеокадр в cv2 (python)?

#python #opencv

#питон #opencv

Вопрос:

(Извините за ошибки в английском языке) Я пишу код, в котором есть эта часть:

 def getVideoFrame(frame_number):   global path   video = cv2.VideoCapture(path)  video.set(cv2.CAP_PROP_POS_FRAMES, frame_number)  success, frame = video.read()   return frame  

В чем проблема с этим (эта часть должна возвращать кадр, переданный параметром)?

Я мало что знаю о python, но я думаю, что это нормально, я уже так много отлаживаю свой код, но я не могу найти ошибку, и весь мой поиск по коду заставляет меня думать, что ошибка в этой части, но я не знаю, где…

Комментарии:

1. проблема в поиске (установка CAP_PROP_POS_*). поиск часто бывает сложным или дорогостоящим, или неточным. избегайте этого.

2. о, я понимаю! Итак, если мне нужен именно тот кадр, я должен обвести все кадры вручную? Разве это не слишком обширно, или нет никаких вариантов?

3. зависит от того, как далеко вам нужно зайти в видео и сколько на самом деле стоит каждая операция. — если вам нужен поиск, вы должны использовать ffmpeg напрямую, например, с помощью PyAV.

4. Я полагаю, что мне придется использовать ffmpeg, мне нужно проверять кадры в разных положениях (невозможно предсказать, какой это будет кадр, он может быть одним из первых или может быть одним из последних).