2010-07-15 7 views
3

Je n'arrive pas à lire mes fichiers avi avec OpenCV. Je suis sur un Mac et les fichiers fonctionnent avec Quicktime et le lecteur VLC. J'ai essayé d'employer mencoder pour le convertir en i420 mais cela n'a pas encore réussi. Aucun message d'erreur ne se produit et il semble que le programme se ferme automatiquement et je ne suis pas sûr de savoir comment le déboguer.Lecture de fichiers AVI dans OpenCV

int main(int argc, char* argv[]) 
{ 
    cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE); 
    CvCapture* capture = cvCreateFileCapture(argv[1]); 
    IplImage* frame; 
    while(1) { 
     frame = cvQueryFrame(capture); 
     if(!frame) break; 
     cvShowImage("Example2", frame); 
     char c = cvWaitKey(33); 
     if(c == 27) break; 
    } 
    cvReleaseCapture(&capture); 
    cvDestroyWindow("Example2"); 
} 
+0

Lorsque vous le parcourez dans votre débogueur, où avorte-t-il? – egrunin

+0

Ça ne dit rien. Il sort juste normalement. – Tereno

+0

Êtes-vous sûr que le nom de fichier que vous donnez comme argument de ligne de commande est correct? Essayez d'ajouter une vérification pour vous assurer que le fichier existe réellement. Sinon, produisez une erreur. –

Répondre

0

Eh bien, puisque votre code manque de vérification des erreurs, peut-être il y avait un problème avec cvCreateFileCapture() et vous ne saurez jamais jusqu'à ce que vous vérifiez le retour de la fonction.

Quoi qu'il en soit, vous devez soit supprimer ou ajouter un débogage pour cette déclaration ici:

if(!frame) break; 

Becouse s'il y avait un problème de récupération de la première image du fichier, votre application serait tout simplement abandonner et quitter en silence , vous donnant le sentiment "rien ne s'est passé".

Changé à quelque chose comme:

if (!frame) { printf("Uow, huge fail!\n"); break;} 

Mais le plus important: pourquoi vous ne l'utilisez cvCaptureFromAVI()? Check out out: http://nashruddin.com/How_to_Play_AVI_Files_with_OpenCV

+0

J'ai essayé cette méthode, mais je vais certainement mettre les messages de débogage à voir. Merci! – Tereno

+0

J'ai eu le même problème. La première image n'est pas récupérée correctement. Cependant, j'utilise le fichier test.avi et tree.avi fourni par le manuel pour tester. Quel est le problème ici? – John

+0

Je ne connais pas @Kalla. Je devrais voir votre code source. Beaucoup de choses peuvent être fausses. Posez une question puis laissez un commentaire avec mon nom pour que je puisse vous suivre. – karlphillip