Чтение видеофайлов OpenCV очень медленно в Python - PullRequest
6 голосов
/ 26 ноября 2011

Я пытаюсь использовать OpenCV из Python для обработки видео, и он работает очень медленно для меня. Например, простое чтение и показ всех кадров работает со скоростью около 1 кадра в секунду:

import cv2
cap = cv2.VideoCapture("out1.avi")
cv2.namedWindow("input")
while(True):
    f, img = cap.read()
    cv2.imshow("input", img)
    cv2.waitKey(1)

Тот же видеофайл в C ++ отображается без каких-либо проблем со скоростью около 30 кадров в секунду. Есть ли идеи, почему версия Python такая медленная?

И еще одна интересная вещь в версии Python: она не показывает файлы .wmv, которые может обрабатывать версия C ++ (для моего Python можно открывать только необработанное видео).

Я использую OpenCV 2.3.1 и Python 2.7

Спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 26 ноября 2011

Код работает нормально (быстро) на моей машине (opencv 2.3.0 и python 2.6.4 на win7-64, воспроизводит несжатый avi-файл).

Вы пробовали производительность с использованием более старого интерфейса Python (cv вместо cv2)?

в отношении воспроизведения видео в формате .wmv, проблема с интерфейсом python (или, в частности, с ffmpeg). он не может воспроизводить кроме несжатых файлов .avi.

0 голосов
/ 13 марта 2015

Попробуйте изменить «1» в cv2.waitKey (1) на более высокое значение, скажем, cv2.waitKey (30)

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