128 397 581 файлов
4,7 Trustpilot
с тех пор, как 2013

Все о файлах PGM

простой формат для изображений в оттенках серого

PGM — это формат с оттенками серого из семейства PBM. В то время как PBM поддерживает только черный и белый цвета, PGM позволяет отображать до 65 535 оттенков между этими двумя крайними значениями. Каждый пиксель описывается одним числовым значением: 0 — это черный, максимальное значение — белый. PGM означает «Portable Gray Map» и был разработан в конце 1988 года Джефом Посканзером как расширение PBM. Об истории всего семейства форматов см. мою статью о PBM.

TLDR:

PGM — это формат оттенков серого из семейства Netpbm. Он работает так же, как PBM, только с более чем двумя «цветами» — именно с оттенками серого. PGM до сих пор используется в обработке изображений, в образовании и в качестве промежуточного формата в конвейерах. Кто знаком со статьей о PBM, тот знает принцип: PGM просто делает его более серым. Цветная версия, в конце концов, — это PPM.

Техническое устройство

Изображение PGM отличается от PBM ровно одной дополнительной строкой в заголовке: максимальным значением (Maxval). Оно определяет, сколько оттенков серого использует изображение. С помощью PGM также можно рисовать изображение на «клеточной бумаге». Вместо того, чтобы раскрашивать квадратики, здесь в каждом квадратике используются числа, представляющие яркость.

Состав Пример Значение
Магическое число P2 Plain PGM (ASCII-вариант)
Комментарий # mein bild Опционально, с # введением
Ширина Высота 24 7 Размеры в пикселях
Максимальное значение <15 Максимальное значение серого (1–65535)
Растровые данные 0 2 4 6 ... Значения серого на пиксель

Классический пример FEEP в формате PGM выглядит так: каждая буква получает свою собственную яркость. (Для лучшего отображения с моноширинным шрифтом я выбрал Maxval равным 8)

P2
# feep.pgm
24 7
8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 2 2 2 2 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 8 8 8 0
0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 8 0
0 2 2 2 0 0 0 4 4 4 0 0 0 6 6 6 0 0 0 8 8 8 8 0
0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 0 0
0 2 0 0 0 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Текст FEEP можно распознать, как и в примере PBM, но буквы становятся светлее слева направо: F — темно-серый (2), E — средне-серый (4 и 6), P — белый (8).

Maxval: решающее отличие между PBM и PGM

Maxval определяет глубину цвета изображения. Кстати, при Maxval 1 PGM ведет себя точно так же, как PBM. При Maxval 255 получается 256 оттенков серого, что соответствует классическому 8-битному изображению в оттенках серого. Возможны значения выше 255 (до 65535), но на практике они редко используются.

Plain vs. Raw: P2 и P5

Так же, как и в случае с PBM, у PGM есть ASCII- и двоичный варианты:

Свойство Plain PGM (P2) Raw PGM (P5)
Данные пикселей Десятичные числа ASCII Двоичные, 1 или 2 байта на пиксель
Удобно для чтения Да, полностью Только заголовок
Объем памяти на пиксель Переменный (цифры + пробелы) 1 байт (макс. значение ≤ 255) или 2 байта
Макс. длина строки Рекомендуется 70 символов Без ограничений

Вариант RAW (P5) является стандартом для инструментов Netpbm. При Maxval более 255 используется два байта на пиксель, Big-Endian.

Типичные области применения

PGM используется везде, где важна только яркость каждого пикселя, а цвет не играет роли:

Наука и медицина: рентгеновские снимки, МРТ-сканы и микроскопические изображения часто обрабатываются как изображения в оттенках серого. PGM подходит для этого благодаря своей простоте и хранению без потерь.
Компьютерное зрение: детекторы краев (Собел, Канни), пороговое сравнивание и анализ гистограмм работают с данными в оттенках серого. PGM предоставляет их без накладных расходов.
Карты высот и модели рельефа: каждый пиксель представляет высоту — это случай применения, который идеально подходит к логике PGM «одно значение на пиксель».
Маски прозрачности: в Netpbm формат PGM также используется в качестве маски прозрачности. При этом белый цвет означает полную непрозрачность, а черный — полную прозрачность.
Обучение: как и PBM, формат PGM отлично подходит для преподавания основ обработки изображений (не редактирования изображений).

Гамма и цветовое пространство

Согласно спецификации, значения серого не являются линейными, а следуют функции передачи гаммы согласно ITU-R BT.709 (гамма 2.2). Однако на практике многие программы не соблюдают это и записывают линейные значения. Инструмент Netpbm pnmgamma может конвертировать между этими двумя вариантами. Даже более распространенная в настоящее время функция передачи sRGB слегка отличается от BT.709, и на самом деле большинство программ просто используют sRGB и называют результат PGM.

Источники

Спецификация формата Netpbm PGM
Статья о PBM с историей семейства форматов

.b0 { color: #ccc; }
.b2 {color: #222; }
.b4 {color:#444;}
.b6 {color:#666;}
.b8 { color: #888; }

const el = document.getElementById('pgm');
el.innerHTML = el.textContent.replace(/([0-9])/g, '<span class="b$1">$1</span>');

0.0/5(0 голоса)

Конвертируйте, открывайте и редактируйте файлы PGM

Информация о файлах PGM

Программное обеспечение для открытия файлов PGM
IrfanView
XnView
GIMP
ImageMagick
Программное обеспечение для редактирования файлов PGM
GIMP
ImageMagick
Paint.NET
MIME-тип для PGM
image/x-portable-graymap
image/x-pgm

Связанные форматы файлов

Все конвертеры из или в формат PGM

Комментариев нет

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Перетащите файлы сюда...