Hordozható szürkeárnyalatos kép (.pgm)
Netpbm SzabványA Portable Graymap Format (PGM) a Netpbm család szürkeárnyalatos képspecifikációja, amelyet széles körben használnak számítógépes látás, robotika, optikai ellenőrzés és digitális képfeldolgozó algoritmusok területén.
Vizsgálat és metaadatok
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) PGM fájlokat:
Bájtszintű fejlécaláírás (fájlazonosító bájtok)
Az operációs rendszerek és a fájlelemzők a kezdő bináris bájtsorozat vizsgálatával azonosítják a(z) PGM fájlokat:
HEX ALÁÍRÁS (ELTOLÁS 0):
50 32 / 50 35ASCII ÁBRÁZOLÁS: P2 / P5
Szabványosítás: Netpbm Library Standard
Műszaki specifikációk
| Konténer architektúra | ASCII-alapú (P2) vagy bináris (P5) Netpbm-formátum, amely a szélességet, a magasságot, a maximális szürkeértéket és a pixeladatfolyamot tartalmazza |
| Tömörítés | Tömörítetlen nyers bináris bájtok vagy ember által olvasható ASCII-számok |
| Bájtsorrend | nagy bájtsorrendű (a P5 mód 16 bites bináris mintái esetén) |
| Színterek | Lineáris szürkeárnyalatos vagy sRGB-szürkeárnyalatos |
| Csatornák és struktúra | 1 szürkeárnyalatos csatorna (8 vagy 16 bites pontossággal) |
| Max. méretek | Gyakorlatilag korlátlan (tetszőleges 64 bites koordinátatartományt támogat) |
| Átlátszóság | None |
| Streaming és progresszív | Soronkénti, szekvenciális adatfolyamú lejátszás |
Műszaki összehasonlító mátrix: PGM vs. versenytársak
| Technikai attribútum | PGM (Jelenlegi) | PBM | PPM | PNG |
|---|---|---|---|---|
| Színmód | Szürkeárnyalatos (8 bites / 16 bites) | 1 bites monokróm | RGB valódi színű (24 bites / 48 bites) | Szürkeárnyalatos, RGB, RGBA |
| Netpbm-családtag | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Nem Netpbm W3C szabvány |
| Fájlazonosító bájtok | P2 (ASCII) / P5 (bináris) | P1 (ASCII) / P4 (bináris) | P3 (ASCII) / P6 (bináris) | ‰PNG.... |
| Tömörítés | Tömörítetlen | Tömörítetlen | Tömörítetlen | Veszteségmentes Deflate |
Gyakori sérülési módok és hexadecimális helyreállítási útmutató
A kép fordítva vagy teljesen kiégett fehér színnel jelenik meg.
Kiváltó ok: Nem megfelelő 'maxval' paraméter a fejlécben (pl. a maxval értéke 255 helyett 1-ként van megadva).
Helyreállítás: Javítsa ki a maxval fejléc sort, vagy konvertálja át a File2File.app Netpbm Converterrel.
Biztonsági elemzés és elemző (parser) támadási vektorok
A PGM dekódolóknak gondosan ellenőrizniük kell, hogy a feldolgozott képpontok száma megegyezik-e a deklarált méretekkel a puffertúlcsordulás megelőzése érdekében.
Ismert támadási vektorok
- Egésztúlcsordulás a szélesség * magasság * (maxval > 255 ? 2 : 1) pufferének lefoglalásakor.
- Puffertúlolvasás hibás ASCII-számértékek olvasásakor.
- Szolgáltatásmegtagadás (DoS) a hamis fejlécbeli méretek által kiváltott hatalmas memóriafoglalás révén.
Ajánlott védekezési módszerek: Korlátozza a megengedett maximális dimenziókat és memóriafoglalási korlátokat a pixelfolyamok olvasása előtt.
Történeti háttér és mérföldkövek
Főbb előnyök
- Kompakt szerkezete megkönnyítheti az alapvető PGM-olvasók megvalósítását, de a mintamélység, a fejlécek és a hibás bemenetek kezelése gondosságot igényel.
- A natív 16 bites szürkeárnyalatos támogatás ideálissá teszi magasságtérképekhez, mélységi térképekhez és hőtérképekhez.
- Az ASCII mód (P2) lehetővé teszi a nyers képpontértékek közvetlen vizsgálatát és módosítását általános szövegszerkesztőkben.
Technikai korlátok és hátrányok
- Nincs tömörítés: nagy fájlméretek a tömörített formátumokhoz, például a PNG-hez képest.
- Hiányoznak belőle a fizikai méretekre, színterekre vagy földrajzi elhelyezkedésre vonatkozó metaadatok.
- Szigorúan egycsatornás: nem tud színes adatokat vagy átlátszóságot (alfát) tárolni.
Érdekes technikai tudnivalók
- Az OpenCV, a ROS (Robot Operating System) és a gépi látási rendszerek gyakran használják a PGM-et SLAM navigációs térképekhez.
- A játékfejlesztők gyakran használnak 16 bites PGM fájlokat terep-magasságtérképként, mivel a nyers magassági adatok tömörítetlenek és könnyen betölthetők.
- A fejlécben szereplő 'maxval' paraméter határozza meg a maximális fényerőértéket (jellemzően 255 8 bitnél vagy 65535 16 bitnél).
Gyakran Ismételt Műszaki Kérdések
Mire használják a PGM formátumot?
A PGM-et elsősorban a számítógépes látás terén (OpenCV), a robotikában (ROS térképfájlok), a tudományos képalkotásban és a 3D terepmagasság-térképek előállításában használják.
Mi a különbség a P2 és P5 PGM fájlok között?
A P2 egy sima ASCII szöveg, ahol minden egyes pixel egy kiírt szám, míg a P5 a pixeleket kompakt bináris bájtok formájában tárolja.
Hogyan alakíthatok át PGM-et JPG-be vagy PNG-be?
A PGM szürkeárnyalatos mintákat tárol. Veszteségmentes, széles körben támogatott képhez alakítsa PNG-be, kisebb, fotószerű fájlhoz pedig JPEG-be; a konverter a böngészőben fut.