Portable Graymap (.pgm)
Netpbm СтандартФорматът за преносими карти в сиви нюанси (PGM) е спецификация за изображения в нюанси на сивото от семейството Netpbm, широко използвана в алгоритми за компютърно зрение, роботика, оптична инспекция и цифрова обработка на изображения.
Инспектиране и метаданни
Операционните системи и файловите анализатори идентифицират PGM файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на хедъра (Magic Bytes)
Операционните системи и файловите анализатори идентифицират PGM файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
50 32 / 50 35ASCII ПРЕДСТАВЯНЕ: P2 / P5
Стандартизация: Netpbm Library Standard
Технически спецификации
| Контейнерна архитектура | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Компресия | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Поредност на байтовете (Endianness) | Big-Endian (for 16-bit binary samples in P5 mode) |
| Цветови пространства | Linear Grayscale or sRGB Grayscale |
| Канали и структура | 1 channel grayscale (8-bit or 16-bit precision) |
| Максимални размери | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Прозрачност | None |
| Стрийминг и прогресивно зареждане | Sequential row-by-row streaming playback |
Техническа сравнителна матрица: PGM спрямо конкуренти
| Технически атрибут | PGM (Текущ) | PBM | PPM | PNG |
|---|---|---|---|---|
| Цвети режим | Нюанси на сивото (8-bit / 16-bit) | 1-bit монохромно | RGB Truecolor (24-bit / 48-bit) | Нюанси на сивото, RGB, RGBA |
| Роднo устройство в Netpbm | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Не-Netpbm W3C стандарт |
| Магически байтове | P2 (ASCII) / P5 (Бинарно) | P1 (ASCII) / P4 (Бинарно) | P3 (ASCII) / P6 (Бинарно) | ‰PNG.... |
| Компресия | Некомпресирано | Некомпресирано | Некомпресирано | Беззагубна Deflate |
Често срещани режими на повреда и ръководство за хекс възстановяване
Изображението се показва инвертирано или напълно в изпепелено бяло.
Първопричина: Несъответстващ параметър „maxval" в заглавната част (напр. maxval е деклариран като 1 вместо 255).
Възстановяване: Коригирайте реда на заглавната част за maxval или транскодирайте с File2File Netpbm Converter.
Анализ на сигурността и вектори на атака към парсера
PGM декодерите трябва внимателно да валидират дали анализираният брой пиксели съответства на декларираните размери, за да се предотврати препълване на буфера.
Известни вектори на атака
- Цялостно препълване по време на разпределението на буфера ширина * височина * (maxval > 255 ? 2 : 1).
- Препълване на буфера при четене на дефектни ASCII цифрови маркери.
- Отказ от услуга чрез масивно разпределение на паметта, задействано от фалшиви размери в заглавната част.
Защитни добри практики:
Исторически произход и етапи
Основни предимства и плюсове
- Нулева сложност: изключително лесен за парсиране и записване на C, Python или WebAssembly без външни библиотеки.
- Нативната поддръжка на 16-битови нюанси на сивото го прави идеален за карти на височините, карти на дълбочината и термично изображение.
- ASCII режимът (P2) позволява директна инспекция и манипулация на сурови стойности на пикселите в стандартни текстови редактори.
Технически ограничения и минуси
- Липса на компресия: големи файлови отпечатъци в сравнение с компресирани формати като PNG.
- Липса на метаданни за физически размери, цветови пространства или геолокация.
- Строго едноканален: не може да съхранява цветни данни или алфа прозрачност.
Интересни технически факти
- OpenCV, ROS (Роботизирана операционна система) и системите за машинно зрение често използват PGM за навигационни карти SLAM.
- Разработчиците на игри често използват 16-битови PGM файлове като карти на височините за терен, тъй като данните за суровата денивелация са некомпресирани и лесни за зареждане.
- Параметърът „maxval" в заглавната част дефинира максималната стойност на яркостта (обикновено 255 за 8-битови или 65535 за 16-битови изображения).
Често задавани технически въпроси
За какво се използва PGM форматът?
PGM се използва предимно в компютърното зрение (OpenCV), роботиката (картови файлове на ROS), научното изображения и генерирането на карти на височините на 3D терени.
Каква е разликата между P2 и P5 PGM файловете?
P2 е обикновен ASCII текст, където всеки пиксел е изписано число, докато P5 съхранява пикселите като компактни двоични байтове.
Как мога да конвертирам PGM в JPG или PNG?
Качете вашия PGM файл в File2File.app, за да го конвертирате в PNG или JPG директно във вашия браузър с пълна поверителност.