Informacje o plikach PGM
prosty format dla obrazów w skali szarości
PGM to format obsługujący skalę szarości z rodziny PBM. Podczas gdy PBM rozróżnia jedynie czerń i biel, PGM pozwala na uzyskanie nawet 65 535 odcieni pomiędzy tymi dwoma skrajnościami. Każdy piksel jest opisany pojedynczą wartością liczbową: 0 oznacza czerń, a wartość maksymalna – biel. PGM oznacza „Portable Gray Map” i został opracowany pod koniec 1988 roku przez Jefa Poskanzera jako rozszerzenie formatu PBM. Jeśli chodzi o historię całej rodziny formatów, zapoznaj się z moim artykułem na temat PBM.
TLDR:
PGM to format skali szarości z rodziny Netpbm. Działa tak samo jak PBM, tylko z więcej niż dwoma „kolorami” – właśnie skalą szarości. PGM jest nadal używany w przetwarzaniu obrazów, edukacji i jako format pośredni w potokach. Kto zna artykuł o PBM, zna zasadę działania; PGM po prostu robi to bardziej szaro. Kolorową wersją jest w końcu PPM.
Budowa techniczna
Obraz PGM różni się od PBM dokładnie jednym dodatkowym wierszem w nagłówku: wartością maksymalną (Maxval). Określa ona, ile odcieni szarości wykorzystuje obraz. Również w przypadku PGM możliwe jest rysowanie obrazu na „papierze w kratkę”. Zamiast wypełniania kwadratów, w każdym z nich umieszcza się liczby reprezentujące jasność.
| Składnik | Przykład | Znaczenie |
|---|---|---|
| Liczba magiczna | P2 |
Zwykły PGM (wersja ASCII) |
| Komentarz | # mein bild |
Opcjonalnie, z # wstępem |
| Szerokość Wysokość | 24 7 |
Wymiary w pikselach |
| Maxval | <15 |
Maksymalna wartość szarości (1–65535) |
| Dane rastrowe | 0 2 4 6 ... |
Wartości szarości na piksel |
Klasyczny przykład FEEP w formacie PGM wygląda tak, że każda litera ma własną jasność. (Aby uzyskać lepszy efekt przy czcionce monospace, wybrałem wartość Maxval równą 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
Tekst FEEP jest rozpoznawalny, tak jak w przykładzie PBM, ale litery stają się jaśniejsze od lewej do prawej: F jest ciemnoszare (2), E średnioszare (4 i 6), P białe (8).
Maxval: kluczowa różnica między PBM a PGM
Maxval określa głębię kolorów obrazu. Przy wartości Maxval 1 PGM zachowuje się dokładnie tak samo jak PBM. Przy wartości Maxval 255 mamy 256 odcieni szarości, co odpowiada klasycznemu obrazowi w 8-bitowej skali szarości. Możliwe są wartości powyżej 255 (do 65535), ale w praktyce rzadko się ich używa.
Plain vs. Raw: P2 i P5
Podobnie jak w przypadku PBM, również w przypadku PGM istnieje wersja ASCII i wersja binarna:
| Właściwość | Plain PGM (P2) |
Raw PGM (P5) |
|---|---|---|
| Dane pikselowe | Liczby dziesiętne ASCII | Binarne, 1 lub 2 bajty na piksel |
| Czytelne dla człowieka | Tak, w całości | Tylko nagłówek |
| Miejsce na dysku na piksel | Zmienna (cyfry + spacje) | 1 bajt (Maxval ≤ 255) lub 2 bajty |
| Maks. długość wiersza | Zalecane 70 znaków | Bez ograniczeń |
Wariant surowy (P5) jest standardem w narzędziach Netpbm. Przy wartości Maxval powyżej 255 używane są dwa bajty na piksel, w formacie Big-Endian.
Typowe obszary zastosowań
PGM jest stosowany wszędzie tam, gdzie liczy się wyłącznie wartość jasności na piksel, a kolor nie ma znaczenia:
– Nauka i medycyna: zdjęcia rentgenowskie, skany MRI i zdjęcia mikroskopowe są często przetwarzane jako obrazy w skali szarości. PGM nadaje się do tego celu ze względu na swoją prostotę i bezstratne przechowywanie.
– Wizja komputerowa: detektory krawędzi (Sobel, Canny), metody progowe i analizy histogramów działają na danych w skali szarości. PGM dostarcza je bez dodatkowego obciążenia.
– Mapy wysokości i modele terenu: każdy piksel reprezentuje wysokość – to zastosowanie idealnie pasuje do logiki „jedna wartość na piksel” w PGM.
– Maski przezroczystości: W Netpbm format PGM jest również wykorzystywany jako maska przezroczystości. Biały kolor oznacza pełną krycie, a czarny – całkowitą przezroczystość.
– Nauczanie: Podobnie jak PBM, format PGM doskonale nadaje się do przekazywania podstaw przetwarzania obrazu (nie edycji obrazu).
Gamma i przestrzeń barw
Zgodnie ze specyfikacją wartości szarości nie są liniowe, lecz podlegają funkcji transferu gamma zgodnie z ITU-R BT.709 (gamma 2.2). W praktyce jednak wiele programów nie przestrzega tego i zapisuje wartości liniowe. Narzędzie Netpbm pnmgamma może konwertować między tymi dwoma wariantami. Również coraz popularniejsza funkcja transferu sRGB nieznacznie odbiega od BT.709, a w rzeczywistości większość programów po prostu używa sRGB i nazywa wynik PGM.
Źródła
Specyfikacja formatu PGM Netpbm
Artykuł PBM z historią rodziny formatów
.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>');
Konwertuj, otwieraj i edytuj pliki PGM
Szczegółowe informacje o plikach PGM
- Oprogramowanie do otwierania plików PGM
- IrfanView
- XnView
- GIMP
- ImageMagick
- Oprogramowanie do edycji plików PGM
- GIMP
- ImageMagick
- Paint.NET
- Typ MIME dla PGM
- image/x-portable-graymap
- image/x-pgm
Ostatnia aktualizacja: 23 kwietnia 2026 przez
Brak komentarzy