Portable Graymap (.pgm)
Netpbm StandardiPortable Graymap Format (PGM) on Netpbm-perheen harmaasävykuvamäärittely, jota käytetään laajasti tietokonenäössä, robotiikassa, optisessa tarkastuksessa ja digitaalisissa kuvankäsittelyalgoritmeissa.
Tarkastele ja metatiedot
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat PGM-tiedostot tarkistamalla tiedoston alun binäärisarjan:
Tavutason otsikon allekirjoitus (Magic Bytes)
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat PGM-tiedostot tarkistamalla tiedoston alun binäärisarjan:
HEX-ALLEKIRJOITUS (OFFSET 0):
50 32 / 50 35ASCII-ESITYSTAPA: P2 / P5
Standardointi: Netpbm Library Standard
Tekniset tiedot
| Säiliöarkkitehtuuri | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Pakkaus | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Tavujärjestys (Endianness) | Big-Endian (for 16-bit binary samples in P5 mode) |
| Väriavaruudet | Linear Grayscale or sRGB Grayscale |
| Kanavat ja rakenne | 1 channel grayscale (8-bit or 16-bit precision) |
| Suurimmat mitat | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Läpinäkyvyys | None |
| Suoratoisto ja progressiivinen lataus | Sequential row-by-row streaming playback |
Tekninen vertailumatriisi: PGM vs. kilpailijat
| Tekninen attribuutti | PGM (Nykyinen) | PBM | PPM | PNG |
|---|---|---|---|---|
| Väritila | Harmaasävy (8-bittinen / 16-bittinen) | 1-bittinen yksivärinen | RGB Truecolor (24-bittinen / 48-bittinen) | Harmaasävy, RGB, RGBA |
| Netpbm-sisar | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Ei-Netpbm W3C-standardi |
| Maagiset tavut | P2 (ASCII) / P5 (Binääri) | P1 (ASCII) / P4 (Binääri) | P3 (ASCII) / P6 (Binääri) | ‰PNG.... |
| Pakkaus | Pakkaamaton | Pakkaamaton | Pakkaamaton | Häviötön Deflate |
Yleiset korruptiotilat ja heksatietojehdotusopas
Kuva näkyy käänteisenä tai täysin valkoisena.
Perussyy: Väärä 'maxval'-parametri otsikossa (esim. maxval määritetty arvoksi 1 arvon 255 sijaan).
Korjaus: Korjaa maxval-otsikkorivi tai muunna File2File Netpbm Converter -ohjelmalla.
Turvallisuusanalyysi ja jäsenninhyökkäysvektorit
PGM-dekoodereiden on tarkistettava huolellisesti, että jäsennetyt pikselimäärät vastaavat ilmoitettuja mittoja puskurin ylivuodon estämiseksi.
Tunnetut hyökkäysvektorit
- Kokonaisluvun ylivuoto leveys * korkeus * (maxval > 255 ? 2 : 1) -puskurin varauksen aikana.
- Puskurin yliluku luettaessa virheellisiä ASCII-numeromerkkejä.
- Palvelunestohyökkäys massiivisen muistinvarauksen kautta, joka käynnistyy väärennetyillä otsikomitoilla.
Parhaat puolustuskäytännöt:
Historia ja virstanpylväät
Tärkeimmät edut
- Nolla monimutkaisuutta: erittäin helppo jäsentää ja kirjoittaa C-, Python- tai WebAssembly-kielellä ilman ulkoisia kirjastoja.
- Natiivi 16-bittinen harmaasävytuki tekee siitä ihanteellisen korkeuskartoille, syvyyskartoille ja lämpökuvaukselle.
- ASCII-tila (P2) mahdollistaa raakojen pikseliarvojen suoran tarkastelun ja käsittelyn tavallisissa tekstieditoreissa.
Tekniset rajoitukset
- Ei pakkausta: suuri tiedostokoko verrattuna pakattuihin tiedostomuotoihin, kuten PNG.
- Ei sisällä metatietoja fyysisille mitoille, väriavaruuksille tai maantieteelliselle sijainnille.
- Tiukasti yksikanavainen: ei voi tallentaa väritietoa tai läpinäkyvyyttä.
Mielenkiintoisia teknisiä faktoja
- OpenCV, ROS (Robot Operating System) ja konenäköjärjestelmät käyttävät usein PGM:ää SLAM-navigointikartoissa.
- Pelintekijät käyttävät usein 16-bittisiä PGM-tiedostoja maaston korkeuskartoina, koska raaka korkeustieto on pakkaamatonta ja helppo ladata.
- Otsikon 'maxval'-parametri määrittää suurimman kirkkausarvon (tyypillisesti 255 8-bittiselle tai 65535 16-bittiselle).
Usein kysytyt tekniset kysymykset
Mihin PGM-muotoa käytetään?
PGM-muotoa käytetään ensisijaisesti konenäössä (OpenCV), robotiikassa (ROS-karttatiedostot), tieteellisessä kuvantamisessa ja 3D-maaston korkeuskarttojen luonnissa.
Mikä ero on P2- ja P5 PGM -tiedostoilla?
P2 on pelkkää ASCII-tekstiä, jossa jokainen pikseli on kirjoitettu numero, kun taas P5 tallentaa pikselit tiiviinä binääritavuina.
Miten voin muuntaa PGM-tiedoston JPG- tai PNG-muotoon?
Lataa PGM-tiedostosi File2File.app-palveluun muuntaaksesi sen PNG- tai JPG-muotoon suoraan selaimessasi täydellä yksityisyydellä.