Przenośna mapa szarości (.pgm)

Netpbm Standardní

Portable Graymap Format (PGM) je specifikace obrázků ve stupních šedi z rodiny Netpbm, široce používaná v počítačovém vidění, robotice, optické inspekci a algoritmech zpracování digitálních obrazů.

Kontrola a metadata

Operační systémy a analyzátory souborů identifikují soubory PGM kontrolou počáteční binární sekvence bajtů:

Vyberte nebo přetáhněte soubory sem

Soukromě - soubory nikdy neopustí vaše zařízení

nebo vložte Ctrl+V
Záruka ochrany soukromí s nulovým přenosem po síti: 0 bajtů odesláno na externí servery. Veškeré zpracování probíhalo lokálně v sandboxu vašeho prohlížeče.

Podpis hlavičky na úrovni bajtů (Magic Bytes)

Operační systémy a analyzátory souborů identifikují soubory PGM kontrolou počáteční binární sekvence bajtů:

HEXADECIMÁLNÍ PODPIS (POSUN 0):

50 32 / 50 35

ASCII REPREZENTACE: P2 / P5

Standardizace: Netpbm Library Standard

Technické specifikace

Architektura kontejneruFormát Netpbm v ASCII (P2) nebo binární podobě (P5) s šířkou, výškou, maximální hodnotou šedi a proudem pixelů
KompreseNekomprimované surové binární bajty nebo čísla v textu ASCII čitelném pro člověka
Pořadí bajtůBig-endian (u 16bitových binárních vzorků v režimu P5)
Barevné prostoryLineární odstíny šedi nebo odstíny šedi sRGB
Kanály a struktura1 kanál ve stupních šedi (přesnost 8 nebo 16 bitů)
Max. rozměryPrakticky neomezené (podpora libovolného 64bitového rozsahu souřadnic)
PrůhlednostŽádná
Streamování a progresivní načítáníSekvenční streamování po jednotlivých řádcích

Technická srovnávací matice: PGM vs konkurence

Technický atributPGM (Aktuální)PBMPPMPNG
Barevný režimStupně šedi (8-bit / 16-bit)1bitová černobíláPlnobarevné RGB (24bitové / 48bitové)Stupně šedi, RGB, RGBA
Příbuzný formát v rodině NetpbmPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)Standard W3C mimo Netpbm
Magické bajtyP2 (ASCII) / P5 (binární)P1 (ASCII) / P4 (binární)P3 (ASCII) / P6 (binární)‰PNG....
KompreseNekomprimovánoNekomprimovánoNekomprimovánoBezztrátová komprese Deflate

Běžné režimy poškození a příručka pro obnovení v hex

Obrázek se zobrazuje převráceně nebo je zcela přeexponovaný do bíla.

Hlavní příčina: Neodpovídající parametr 'maxval' v hlavičce (např. maxval deklarovaný jako 1 namísto 255).

Obnovení: Opravte řádek hlavičky maxval nebo proveďte transkódování pomocí nástroje File2File.app Netpbm Converter.

Bezpečnostní analýza a vektory útoků na parser

Dekodéry PGM musí pečlivě ověřit, zda analyzované počty pixelů odpovídají deklarovaným rozměrům, aby se předešlo přetečení vyrovnávací paměti.

Známé vektory útoků

  • Přetečení celého čísla při alokaci vyrovnávací paměti o velikosti šířka * výška * (maxval > 255 ? 2 : 1).
  • Přečtení za hranice vyrovnávací paměti při čtení chybně vytvořených číselných tokenů ASCII.
  • Odepření služby (DoS) prostřednictvím masivní alokace paměti vyvolané podvrženými rozměry v hlavičce.

Doporučené bezpečnostní postupy: Před čtením datových proudů pixelů omezte maximální povolené rozměry a limity alokace paměti.

Historický vývoj a milníky

200016bitová hloubka (maxval až 65535) byla standardizována v binárním režimu P5 pro vědecké zobrazování.
1993Začleněno do sady nástrojů Netpbm jako standardní mezilehlý formát stupňů šedi.
1989Jef Poskanzer vytváří PGM jako doplněk k PBM s plnou podporou 256 úrovní stupňů šedi.

Klíčové výhody a přednosti

  • Kompaktní struktura PGM může usnadnit tvorbu základních čteček, ale je třeba správně zpracovat bitovou hloubku vzorků, hlavičky i chybně vytvořený vstup.
  • Díky nativní podpoře 16bitových odstínů šedi je ideální pro výškové mapy, mapy hloubky a termovizi.
  • Režim ASCII (P2) umožňuje přímo kontrolovat a upravovat surové hodnoty pixelů v běžných textových editorech.

Technická omezení a nevýhody

  • Žádná komprese: velké velikosti souborů v porovnání s komprimovanými formáty, jako je PNG.
  • Postrádá metadata pro fyzické rozměry, barevné prostory nebo geolokaci.
  • Pouze jeden kanál: nelze ukládat barevná data ani průhlednost alfa kanálu.

Zajímavé technické drobnosti

  • OpenCV, ROS (Robot Operating System) a systémy strojového vidění často používají PGM pro navigační mapy SLAM.
  • Vývojáři her často používají 16bitové soubory PGM jako výškové mapy terénu, protože surová data o nadmořské výšce jsou nekomprimovaná a snadno se načítají.
  • Parametr 'maxval' v hlavičce určuje maximální hodnotu jasu (typicky 255 pro 8bitový nebo 65535 pro 16bitový obraz).

Často kladené technické otázky

K čemu se používá formát PGM?

Formát PGM se primárně používá v oblasti počítačového vidění (OpenCV), robotiky (mapové soubory ROS), vědeckého zobrazování a generování 3D výškových map terénu.

Jaký je rozdíl mezi soubory PGM typu P2 a P5?

P2 je prostý text ASCII, kde je každý pixel zapsán jako číslo, zatímco P5 ukládá pixely jako kompaktní binární bajty.

Jak mohu převést formát PGM na JPG nebo PNG?

PGM uchovává vzorky ve stupních šedi. Převeďte jej do PNG, chcete-li bezztrátový obrázek s širokou podporou prohlížečů, nebo do JPEG, pokud je důležitější menší soubor vhodný pro fotografie. Převod probíhá v prohlížeči.