OpenCV + python — acquérir des images à partir d'un fichier vidéo
Je n'arrive pas à capturer des images à partir d'un fichier à l'aide d'OpenCV -- j'ai compilé à partir des sources sur Ubuntu avec tout le nécessaire prereqs selon: http://opencv.willowgarage.com/wiki/InstallGuide%20%3A%20Debian
#!/usr/bin/env python
import cv
import sys
files = sys.argv[1:]
for f in files:
capture = cv.CaptureFromFile(f)
print capture
print cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH)
print cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT)
for i in xrange(10000):
frame = cv.QueryFrame(capture)
if frame:
print frame
De sortie:
ubuntu@local:~/opencv$ ./test.py bbb.avi
<Capture 0xa37b130>
0.0
0.0
Les cadres sont toujours Aucun...
J'ai transcodé un fichier vidéo à i420 format:
mencoder $1 -nosound -ovc raw -vf format=i420 -o $2
Des idées?
C'est exactement ce que je cherchais. Cela a fonctionné parfaitement pour moi sur Ubuntu 10.04 à l'aide d'Opencv 2,1 paquets. Merci!
OriginalL'auteur Matt Billenstein | 2011-02-08
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas le
gstreamer-ffmpeg
ougsteamer-python
ougsteamer-python-devel
les packages installés. J'ai installé tous les trois d'entre eux. et exactement le même problème a été résolu.OriginalL'auteur eric
Je suis en utilisant OpenCV 2.2.0, compilé sur Ubuntu à partir de la source. Je peux confirmer que le code source que vous avez fourni fonctionne comme prévu. Donc, le problème est ailleurs.
Je n'arrivais pas à reproduire votre problème en utilisant mencoder (installation, il est un peu un problème sur ma machine) j'ai donc utilisé
ffmpeg
pour envelopper une vidéo brute dans le conteneur AVI:(contremaître.yuv est un standard de l'image CIF séquence, vous pouvez le trouver sur le net si vous regardez autour de).
De l'exécution de l'AVI à partir de
ffmpeg
par le biais de votre source donne ceci:Donc les choses fonctionnent comme prévu. Ce que vous devez vérifier:
ffmpeg
bibliothèques pour lire des fichiers vidéo, alors soyez à l'affût des messages informatifs. Voici ce qui se passe si vous essayez de lire un fichier vidéo BRUT sans un conteneur (qui ressemble à votre problème):erreur:
ffplay file.avi
-- si cela échoue, alors le problème est probablement avec le fichier. Essayez d'utiliserffmpeg
pour transcoder au lieu demencoder
.ffmpeg
installer est cassé.OriginalL'auteur mpenkov