Не удается прочитать или воспроизвести видео в OpenCV + Python с помощью VideoCapture
import cv2
import numpy as np
cap = cv2.VideoCapture('traffic.avi')
retval, frame = cap.read()
print retval
================ RESTART: J:Python For DIPtraffic_video.py ================
False
>>>
значение retval всегда False, что означает, что видео не читается командой. Это должно быть правдой для чтения кадров. Я не знаю, что делать. Однако, когда я использую веб-камеру по умолчанию, это оказывается правдой. Я пробовал много видео, и появляется та же проблема. Примечание: Я правильно установил ffmpeg.
Примечание: это не полный код, на этом шаге я только проверяю cap.read () либо True, либо False
2 ответов
этот метод гарантирован 100%
прежде всего проверьте свою версию OpenCV, скажем, например 2.4.11. вы можете проверить это, введя следующую команду в оболочке Python:
>>> from cv2 import __version__
>>> __version__
'2.4.11'
>>>
тогда перейдите в C:\opencv\build\x86\vc12\bin
и копия opencv_ffmpeg2411.dll
.
Наконец, перейдите в корневой каталог Python ex:C:\Python27
и вставить opencv_ffmpeg2411.dll
в нем
проверьте имя файла opencv_ffmpeg2411.dll, будь то версия opencv пишется или нет, если не делать следующее opencv_ffmpeg (версия вашего opencv без точек).dll файлы
после этого создайте новый файл Python и скопируйте этот код и вставьте его загрузить ваши собственные видео
import numpy as np
import cv2
# Capture video from file
cap = cv2.VideoCapture('your video')
while True:
ret, frame = cap.read()
if ret == True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(30) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
у вас будет выходное видео, например, как это: результат
Поиск корневого каталога Python может быть немного сложным. Я использую разработки enthought распространение и, поначалу, вставил opencv_ffmpeg
файл в неправильный каталог Python.
неправильно:
C:\Users\USERNAME\AppData\Local\Programs\Python\Python35-32
правильно:
C:\Users\USERNAME\AppData\Local\Enthought\Canopy\User
короче говоря, убедитесь, что вы нашли правильный каталог Python.