Mapa de grises portátil (.pgm)
Netpbm EstándarPortable Graymap Format (PGM) es el formato en escala de grises de la familia Netpbm. Se usa mucho en visión artificial, robótica, inspección óptica y procesamiento digital de imágenes.
Inspección y metadatos
Los sistemas operativos y analizadores de archivos identifican los archivos de PGM inspeccionando la secuencia de bytes binarios inicial:
Firma de cabecera a nivel de bytes (bytes mágicos)
Los sistemas operativos y analizadores de archivos identifican los archivos de PGM inspeccionando la secuencia de bytes binarios inicial:
FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):
50 32 / 50 35REPRESENTACIÓN ASCII: P2 / P5
Estandarización: Netpbm Library Standard
Especificaciones técnicas
| Arquitectura del contenedor | Formato Netpbm ASCII (P2) o binario (P5), con el ancho, el alto, el valor máximo de gris y los datos de píxel |
| Compresión | Bytes binarios sin comprimir o números en texto ASCII legible |
| Orden de bytes (Endianness) | Orden de bytes big-endian (para muestras binarias de 16 bits en modo P5) |
| Espacios de color | Escala de grises lineal o escala de grises sRGB |
| Canales y estructura | Un canal de escala de grises (precisión de 8 o 16 bits) |
| Dimensiones máximas | Prácticamente ilimitadas (admite un espacio de coordenadas arbitrario de 64 bits) |
| Transparencia | Ninguna |
| Streaming y progresivo | Reproducción secuencial en streaming, fila por fila |
Matriz de comparación técnica: PGM frente a la competencia
| Atributo técnico | PGM (Actual) | PBM | PPM | PNG |
|---|---|---|---|---|
| Modo de color | Escala de grises (8 bits / 16 bits) | Monocromo de 1 bit | Color verdadero RGB de 24 o 48 bits | Escala de grises, RGB, RGBA |
| Formato hermano en Netpbm | PGM (mapa de grises portátil) | PBM (mapa de bits portátil) | PPM (mapa de píxeles portátil) | Estándar del W3C ajeno a Netpbm |
| Bytes mágicos | P2 (ASCII)/P5 (binario) | P1 (ASCII)/P4 (binario) | P3 (ASCII)/P6 (binario) | ‰PNG.... |
| Compresión | Sin comprimir | Sin comprimir | Sin comprimir | Deflate sin pérdida |
Modos de corrupción comunes y guía de recuperación hexadecimal
La imagen aparece invertida o completamente sobreexpuesta en blanco.
Causa raíz: El valor «maxval» de la cabecera no coincide con los datos (por ejemplo, se declara 1 en lugar de 255).
Recuperación: Corrija la línea «maxval» de la cabecera o convierte el archivo con el conversor Netpbm de File2File.app.
Análisis de seguridad y vectores de ataque al analizador
Los descodificadores PGM deben comprobar que el número de píxeles leídos coincida con las dimensiones declaradas para evitar desbordamientos del búfer.
Vectores de ataque conocidos
- Desbordamiento de enteros al asignar un búfer de ancho x alto x (maxval > 255 ? 2 : 1).
- Lectura fuera de los límites del búfer al procesar tokens numéricos ASCII mal formados.
- Denegación de servicio por una asignación masiva de memoria provocada por dimensiones de cabecera manipuladas.
Mejores prácticas defensivas: Antes de leer los píxeles, Limita las dimensiones máximas y la memoria que se puede asignar.
Orígenes históricos e hitos
Ventajas principales
- La estructura compacta de PGM puede facilitar la implementación de lectores básicos, aunque hay que tratar con cuidado la profundidad de muestra, las cabeceras y las entradas mal formadas.
- La compatibilidad nativa con escala de grises de 16 bits lo hace idóneo para mapas de alturas y profundidad, así como para imágenes térmicas.
- El modo ASCII (P2) permite ver y modificar los valores de píxel sin procesar en cualquier editor de texto.
Limitaciones técnicas
- No tiene compresión, por lo que los archivos ocupan más que los formatos comprimidos, como PNG.
- No admite metadatos sobre dimensiones físicas, espacios de color ni geolocalización.
- Solo admite un canal: no puede almacenar datos de color ni transparencia alfa.
Curiosidades técnicas interesantes
- OpenCV, ROS (Robot Operating System) y los sistemas de visión artificial suelen usar PGM para los mapas de navegación SLAM.
- Los desarrolladores de juegos suelen usar archivos PGM de 16 bits como mapas de alturas del terreno, porque los datos de elevación sin comprimir son fáciles de cargar.
- El parámetro «maxval» de la cabecera define el brillo máximo (normalmente, 255 para 8 bits o 65 535 para 16 bits).
Preguntas técnicas frecuentes
¿Para qué se utiliza el formato PGM?
PGM se usa sobre todo en visión artificial (OpenCV), robótica (archivos de mapas ROS), imágenes científicas y generación de mapas de alturas para terrenos 3D.
¿Cuál es la diferencia entre los archivos PGM P2 y P5?
P2 guarda cada píxel como un número de texto ASCII; P5 guarda los píxeles como bytes binarios compactos.
¿Cómo puedo convertir PGM a JPG o PNG?
Sube tu archivo PGM a File2File.app para convertirlo a PNG o JPG directamente en tu navegador con total privacidad.