Comment charger une vidéo dans opencv(python)
Je suis un débutant dans OpenCV et Python.
J'ai essayé de charger une vidéo et l'afficher à l'aide de code donné ci-dessous:
import cv2
cap = cv2.VideoCapture('G:d scanner.mmv')
while(1):
_ , img2=cap.read()
cv2.namedWindow('video',cv2.WINDOW_NORMAL)
cv2.imshow('video',img2)
k=cv2.waitKey(1) & 0xFF
if k==27:
break
cap.release()
cv2.destroyAllWindows()
Mais il en montrant le message d'erreur suivant:
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file ..\..\..\..\opencv\modules\highgui\src\window.cpp, line 261
File "test3.py", line 8, in <module>
cv2.imshow('video',img2)
cv2.error: ..\..\..\..\opencv\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow
Il y a des questions précédentes sur ce site au sujet de cette question, mais les réponses
compte tenu de ont été en utilisant des cv de la bibliothèque, mais pas cv2.
Aucune idée de ce qui est mal à cela?
- La version d'OpenCV et de Python que vous utilisez?
Vous devez vous connecter pour publier un commentaire.
Ce qui pourrait vous aider:
Si cela ne fonctionne pas, il y a des tas d'explications dans la documentation: http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_video_display/py_video_display.html
Je pense que vous n'avez pas de cascade de fichier qui permet de déterminer ce que pour comparer avec et quand sortir. Essayez le code suivant et de voir.
Il y a quelques différences importantes lors de l'utilisation de VideoCapture sur un fichier vidéo. Tout d'abord, il n'y a pas construit dans le cadre des retards, comme lors de la capture à partir d'une webcam. Depuis la plupart des ordinateurs très puissants sont ces jours-ci, à moins que vous avez délibérément introduire un délai entre les images, la vidéo sera affichée en un clin d'œil.
Deuxièmement, la vidéo a une fin à la différence d'entrée à partir de votre webcam, de sorte que vous devez explicitement gérer ce cas. Je soupçonne ce qui se passe dans votre cas est que la vidéo est à compléter en quelques millisecondes, et puis le final
cap.read()
retourne une matrice vide quiimshow()
par la suite se plaint.Voir Vidéo d'ouverture avec openCV +python. L'une des réponses y sont directement applicables à votre situation.
essayer cette
cap = cv2.VideoCapture('G:/3d scanner/2.mmv')
utilisation ("%s" %paramètre)
et ne pas l'utiliser ("%s",paramètre)