Przenośna mapa szarości (.pgm)
Netpbm StandardFormat Portable Graymap Format (PGM) je specifikacija sivinskih slik družine Netpbm, ki se pogosto uporablja v računalniškem vidu, robotiki, optični inšpekciji in algoritmih digitalne obdelave slik.
Pregled in metapodatki
Operacijski sistemi in analizatorji datotek identificirajo datoteke PGM s pregledom vodilnega binarnega zaporedja bajtov:
Podpis glave na ravni bajtov (Čarobni bajti)
Operacijski sistemi in analizatorji datotek identificirajo datoteke PGM s pregledom vodilnega binarnega zaporedja bajtov:
PODPIS HEX (ZAMIK 0):
50 32 / 50 35REPREZENTACIJA ASCII: P2 / P5
Standardizacija: Netpbm Library Standard
Tehnične specifikacije
| Arhitektura vsebnika | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Stiskanje | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Vrstni red bajtov | Big-Endian (for 16-bit binary samples in P5 mode) |
| Barvni prostori | Linear Grayscale or sRGB Grayscale |
| Kanali in struktura | 1 channel grayscale (8-bit or 16-bit precision) |
| Največje dimenzije | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Prosojnost | None |
| Pretočno in progresivno predvajanje | Sequential row-by-row streaming playback |
Tehnična primerjalna matrika: PGM proti konkurenci
| Tehnični atribut | PGM (Trenutno) | PBM | PPM | PNG |
|---|---|---|---|---|
| Barvni način | Sivine (8-bitno / 16-bitno) | 1-bitna monokromatska | Polne barve RGB (24-bitne / 48-bitne) | Sivine, RGB, RGBA |
| Sorodnik Netpbm | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Standard W3C izven Netpbm |
| Magični bajti | P2 (ASCII) / P5 (Binarno) | P1 (ASCII) / P4 (Binarno) | P3 (ASCII) / P6 (Binarno) | ‰PNG.... |
| Stiskanje | Nestisnjeno | Nestisnjeno | Nestisnjeno | Deflate brez izgub |
Pogosti načini okvar in vodič za heksadecimalno obnovo
Slika je prikazana obrnjena ali popolnoma prežgana v belo.
Glavni vzrok: Neprilegajoč se parameter 'maxval' v glavi (npr. maxval je opredeljen kot 1 namesto 255).
Sanacija: Popravite vrstico glave maxval ali izvedite transkodiranje s pretvornikom File2File Netpbm Converter.
Varnostna analiza in napadalni vektorji razčlenjevalnika
Dekoderji PGM morajo skrbno preveriti, ali se razčlenjeno število slikovnih pik ujema z deklariranimi dimenzijami, da preprečijo prekoračitev medpomnilnika.
Znani vektorji napada
- Prelivanje celoštevilskih vrednosti med dodeljevanjem pomnilnika širina * višina * (maxval > 255 ? 2 : 1).
- Prekomerno branje med pomnilnikom pri branju napačno oblikovanih žetonov števil ASCII.
- Zavrnitev storitve prek obsežne dodelitve pomnilnika, ki jo sprožijo ponarejene dimenzije glave.
Obrambne najboljše prakse:
Zgodovinski izvor in mejniki
Ključne prednosti
- Ničelna kompleksnost: izjemno preprosto za razčlenjevanje in pisanje v jezikih C, Python ali WebAssembly brez zunanjih knjižnic.
- Izvorna podpora za 16-bitne sivine ga naredi idealnega za karte višin (heightmaps), karte globin in toplotno slikanje.
- Način ASCII (P2) omogoča neposreden pregled in manipulacijo surovih vrednosti slikovnih pik v standardnih urejevalnikih besedil.
Tehnične omejitve in slabosti
- Brez stiskanja: veliki odtisi datotek v primerjavi s stisnjenimi formati, kot je PNG.
- Brez metapodatkov za fizične dimenzije, barvne prostore ali geolokacijo.
- Strogo enokanalni: ne more shranjevati barvnih podatkov ali prosojnosti alfa.
Zanimive tehnične malenkosti
- OpenCV, ROS ( Robot Operating System) in sistemi strojnega vida pogosto uporabljajo PGM za navigacijske karte SLAM.
- Razvijalci iger pogosto uporabljajo 16-bitne datoteke PGM kot karte višin terena, ker so surovi podatki o nadmorski višini nestisnjeni in preprosti za nalaganje.
- Parameter 'maxval' v glavi določa najvišjo vrednost svetlosti (običajno 255 za 8-bitne ali 65535 za 16-bitne datoteke).
Pogosta tehnična vprašanja
Za kaj se uporablja format PGM?
Format PGM se uporablja predvsem v računalniškem vidu (OpenCV), robotiki (zemljevidi ROS), znanstvenem upodabljanju in generiranju zemljevidov višin 3D-terena.
Kakšna je razlika med datotekama PGM P2 in P5?
P2 je navadno besedilo ASCII, kjer je vsaka slikovna točka zapisana kot število, medtem ko P5 shranjuje slikovne točke kot kompaktne binarne bajte.
Kako lahko pretvorim PGM v JPG ali PNG?
Naložite datoteko PGM v File2File.app in jo pretvorite v PNG ali JPG neposredno v brskalniku ob popolni zasebnosti.