Graymap portable (.pgm)
Netpbm StandardLe format Portable Graymap (PGM) est la spécification d'image en nuances de gris de la famille Netpbm, largement utilisée en vision par ordinateur, en robotique, en inspection optique et dans les algorithmes de traitement d'images numériques.
Inspection et métadonnées
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers PGM en inspectant leur séquence initiale d'octets binaires :
Signature d'en-tête au niveau des octets (octets magiques)
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers PGM en inspectant leur séquence initiale d'octets binaires :
SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :
50 32 / 50 35REPRÉSENTATION ASCII : P2 / P5
Normalisation : Netpbm Library Standard
Spécifications techniques
| Architecture de conteneur | Format Netpbm ASCII (P2) ou binaire (P5) avec largeur, hauteur, valeur de gris maximale et flux de pixels |
| Compression | Octets binaires bruts non compressés ou nombres textuels ASCII lisibles par l'homme |
| Ordre des octets | Gros-boutiste (Big-Endian) (pour les échantillons binaires 16 bits en mode P5) |
| Espaces colorimétriques | Niveaux de gris linéaires ou niveaux de gris sRGB |
| Canaux et structure | 1 canal en niveaux de gris (précision de 8 bits ou de 16 bits) |
| Dimensions maximales | Pratiquement illimitées (prend en charge un espace de coordonnées arbitraire sur 64 bits) |
| Transparence | Aucune |
| Prise en charge du traitement en continu | Lecture séquentielle en continu, ligne par ligne |
Matrice de comparaison technique : PGM face aux concurrents
| Attribut technique | PGM (Actuel) | PBM | PPM | PNG |
|---|---|---|---|---|
| Mode couleur | Nuances de gris (8 bits / 16 bits) | Monochrome 1 bit | Couleur RVB vraie (24 bits / 48 bits) | Niveaux de gris, RVB, RVBA |
| Format apparenté Netpbm | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Standard W3C hors Netpbm |
| Octets magiques | P2 (ASCII) / P5 (binaire) | P1 (ASCII) / P4 (binaire) | P3 (ASCII) / P6 (binaire) | ‰PNG.... |
| Compression | Non compressé | Non compressé | Non compressé | Deflate sans perte |
Modes de corruption courants et guide de restauration hexadécimale
L'image s'affiche inversée ou complètement surexposée en blanc.
Cause initiale: Paramètre 'maxval' erroné dans l'en-tête (par exemple, maxval déclaré à 1 au lieu de 255).
Récupération: Corriger la ligne d'en-tête maxval ou convertir avec le outil de conversion Netpbm de File2File.app.
Analyse de sécurité et vecteurs d'attaque de l'analyseur
Les décodeurs PGM doivent valider avec soin que le nombre de pixels analysés correspond aux dimensions déclarées afin d'éviter les dépassements de tampon.
Vecteurs d’attaque connus
- Dépassement d'entier lors de l'allocation du tampon largeur * hauteur * (maxval > 255 ? 2 : 1).
- Lecture au-delà des limites du tampon lors du traitement de jetons numériques ASCII mal formés.
- Déni de service par allocation massive de mémoire déclenchée par des dimensions d'en-tête forgées.
Bonnes pratiques de défense: Limiter les dimensions maximales autorisées et les seuils d'allocation de mémoire avant de lire les flux de pixels.
Origines historiques et jalons
Principaux avantages
- La structure compacte de PGM peut faciliter la création de lecteurs élémentaires, mais la gestion de la profondeur des échantillons, des en-têtes et des entrées mal formées demande de la prudence.
- La prise en charge native des nuances de gris 16 bits le rend idéal pour les cartes de relief (heightmaps), les cartes de profondeur et l'imagerie thermique.
- Le mode ASCII (P2) permet l'inspection directe et la manipulation des valeurs de pixels brutes dans les éditeurs de texte standard.
Limites techniques
- Aucune compression : fichiers volumineux par rapport aux formats compressés tels que PNG.
- Absence de métadonnées pour les dimensions physiques, les espaces colorimétriques ou la géolocalisation.
- Strictement monocanal : impossible d'y stocker des données couleur ou une transparence alpha.
Faits intéressants
- OpenCV, ROS (Robot Operating System) et les systèmes de vision industrielle utilisent fréquemment le format PGM pour les cartes de navigation SLAM.
- Les développeurs de jeux vidéo utilisent souvent des fichiers PGM 16 bits comme cartes de relief de terrain, car les données d'élévation brutes ne sont pas compressées et sont faciles à charger.
- Le paramètre 'maxval' dans l'en-tête définit la valeur de luminosité maximale (généralement 255 pour 8 bits ou 65535 pour 16 bits).
Foire aux questions techniques
À quoi sert le format PGM ?
Le format PGM est principalement utilisé en vision par ordinateur (OpenCV), en robotique (fichiers de cartes ROS), en imagerie scientifique et pour la génération de cartes de relief de terrain 3D.
Quelle est la différence entre les fichiers PGM P2 et P5 ?
Le format P2 est un texte ASCII simple où chaque pixel est un nombre écrit, tandis que le format P5 stocke les pixels sous forme d'octets binaires compacts.
Comment puis-je convertir un fichier PGM en JPG ou PNG ?
Téléchargez votre fichier PGM sur File2File.app pour le convertir en PNG ou JPG directement dans votre navigateur en toute confidentialité.