import cv2
import numpy as np
cap = cv2.VideoCapture('traffic.avi')
retval, frame = cap.read()
print retval
================ RESTART: J:\Python For DIP\traffic_video.py ================
False
>>>
La valeur de retval est toujours False, ce qui signifie que la vidéo n'est pas lue par la commande. Il doit être vrai pour lire les cadres. Je ne sais pas quoi faire. Cependant, lorsque j'utilise ma webcam par défaut, il s'avère être vrai. J'ai essayé beaucoup de vidéos et le même problème apparaît. Remarque: j'ai correctement installé le ffmpeg.
Note: Ce n'est pas le code complet, dans cette étape, je ne valide que cap.read () True ou False
Cette méthode est garantie à 100%
tout d’abord, vérifiez votre version d’OpenCV, par exemple 2.4.11. vous pouvez le vérifier en tapant les commandes suivantes dans votre shell Python:
>>> from cv2 import __version__
>>> __version__
'2.4.11'
>>>
Ensuite, allez à C:\opencv\build\x86\vc12\bin
et copiez opencv_ffmpeg2411.dll
. Enfin, allez au répertoire racine de Python ex: C:\Python27
et collez opencv_ffmpeg2411.dll
dans celui-ci.
vérifiez le nom du fichier opencv_ffmpeg2411.dll, que ce soit la version d’opencv est écrit ou non, sinon procédez comme suit opencv_ffmpeg (version de votre opencv sans points) .dll
Après cela, créez un nouveau fichier Python, copiez ce code et collez-le en chargeant votre propre vidéo.
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()
vous aurez une sortie vidéo par exemple comme ceci: Résultat
Trouver le répertoire racine de Python peut être un peu délicat. J'utilise une distribution Enthought et, au début, j'ai collé le fichier opencv_ffmpeg
dans le mauvais répertoire Python.
FAUX:
C:\Users\USERNAME\AppData\Local\Programs\Python\Python35-32
DROITE:
C:\Users\USERNAME\AppData\Local\Enthought\Canopy\User
Bref, assurez-vous de trouver le bon répertoire Python.