Emgu CV obtenir toutes les images à partir de fichiers vidéo
Je voudrais vous demander de m'aider à l'obtention de toutes les images à partir de fichiers vidéo à l'aide de Emgu CV. Je sais que je peux utiliser Capture
classe et de son QueryFrame()
méthode, mais cela ne renvoie à une image. Quelle est la manière la plus simple d'obtenir tous les cadres? (et l'enregistrer par exemple à Image<Bgr, Byte>[]
) j'ai besoin de tous les cadres à faire un peu plus de traitement (pour être plus précis: la clé d'extraction d'image pour la vidéo de synthèse).
Merci beaucoup pour votre aide.
OriginalL'auteur tom | 2011-12-12
Vous devez vous connecter pour publier un commentaire.
Voir ma réponse ici pour référence Emgu de Capture vidéo joue super rapide
Mais cela devrait le faire comme vous le demandez, j'ai utilisé une liste pour stocker les images, vous pouvez utiliser un tableau, mais vous aurez besoin de connaître la taille de votre fichier avi est.
Ceci a été conçu pour permettre la lecture du fichier vidéo à un taux responsable, mais comme votre de convertir simplement vous pouvez utiliser l'Application.Méthode Idle tout aussi facilement comme ça...
Vous devez être prudent de la fin de l'erreur de fichier, vous recevrez un message d'erreur. Vous pouvez toujours utiliser un try catch relevé pour intercepter l'erreur en question, il va donner au lieu de mettre simplement fin à la conversion.
Si vous utilisez une image de tableau, vous aurez à faire une boucle par le fichier incrémentation d'une variable de comptage et les images, puis créer l'image de tableau avant de convertir le fichier vidéo en un tableau.
[MODIFIER]
Comme l'a demandé c'est une méthode version de récupérer toutes les images d'un fichier vidéo je n'ai pas testé sur un grand fichier vidéo que j'attends que le programme plante car il faudra beaucoup de mémoire.
Sinon je me rends compte que vous pouvez enregistrer 10 secondes de la vidéo d'une webcam si cette méthode de faire cela, j'ai utilisé un Chronomètre comme la boucle while interdit l'utilisation d'un timer à moins que votre multi threading l'application
et ce serait appelé comme ceci:
Espère que cette aide,
Acclamations,
Chris
Application.Idle
. Je veux simplement avoir une fonction que je peux appeler quand je veux et il me renvoie la liste de l'Image<Bgr,Byte> images à partir de l'entrée vidéo.Salut, j'ai ajouté le code dans une méthode que l'on pourrait appeler, j'espère que c'est ce que votre après si aucun laissez-moi savoir Cheers
pouvez-vous m'aider stackoverflow.com/questions/31259051/...
OriginalL'auteur Chris
Même j'ai été confronté au même problème.Donc j'ai initialisé un autre timer et a fourni la vidéo enregistrer le code dans.Et ce minuteur est activé uniquement lorsque le bouton d'enregistrement[Le bouton sur la forme que sur cliquez sur enregistrer la vidéo] est cliqué.Maintenant, je peux capturer de la vidéo mais l'audio n'est pas enregistré.
OriginalL'auteur Ahammed