2015-07-23 1 views
1

J'essaie de tester le détecteur de criblage de la bibliothèque de vision par ordinateur vlfeat en exécutant le fichier sift.c dans le dossier src. J'ai compilé et exécuté avec succès le programme. Cependant, j'ai l'erreur: l'image d'entrée contient un en-tête PGM mal formé. Je suis sûr que ce n'est pas le problème du fichier image entré. Quelqu'un pourrait-il expliquer cela?erreur d'exécution de vlsift: l'image d'entrée contient un en-tête PGM mal formé

Répondre

0

Ceci correspond au code d'erreur VL_ERR_PGM_INV_HEAD qui est émis par le décodeur PGM si le fichier est less than 2 bytes ou a un not supported or invalid magic number.

Veuillez noter que vlfeat ne supporte que les formats (binaires) P2 (ASCII) et P5 (binaire). Donc, vous devriez inspecter votre magie pour contrôler si elle répond à ces exigences, par exemple .:

$ xxd -c 1 -l 2 foo.pgm 
0000000: 50 P 
0000001: 35 5 

$ xxd -c 1 -l 2 bar.pbm 
0000000: 50 P 
0000001: 34 4 

Ici foo.pgm est valide (graymap au format binaire) mais bar.pbm est pas pris en charge par vlfeat (noir bitmap blanc & au format binaire).

+0

Merci d'avoir répondu. Dans ce cas, que dois-je faire pour extraire des fonctionnalités de mon image. En fait, j'ai trouvé un autre code, il utilise opencv pour lire l'image, puis convertit le résultat opencv au format vlfeat. – neouyghur

+0

Vous devez utiliser l'API OpenCV utilisée pour écrire/encoder une image dans PGM, ou convertir votre image a priori avec, par exemple, ImageMagick: 'convertir foo.jpg foo.pgm'. – deltheil