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é
1
A
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).
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
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