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 tiedostoa ja sen metatietoja
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat PGM-tiedostot tarkistamalla tiedoston alun binäärisarjan:
Otsaketunniste tavutasolla (tunnistetavut)
Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat PGM-tiedostot tarkistamalla tiedoston alun binäärisarjan:
HEKSADEKSIMAALINEN TUNNISTE (SIJAINTI 0):
50 32 / 50 35ASCII-ESITYSTAPA: P2 / P5
Standardointi: Netpbm Library Standard
Tekniset tiedot
| Säiliöarkkitehtuuri | ASCII-muotoinen (P2) tai binäärinen (P5) Netpbm-tiedosto, jossa ilmoitetaan leveys, korkeus, harmaasävyjen enimmäisarvo ja pikselivirta |
| Pakkaus | Pakkaamattomat binääritavut tai ihmisen luettavissa olevat ASCII-lukunumerot |
| Tavujärjestys (Endianness) | Big-Endian (16-bittisille binäärinäytteille P5-tilassa) |
| Väriavaruudet | Lineaarinen harmaasävy tai sRGB-harmaasävy |
| Kanavat ja rakenne | Yksi harmaasävykanava (8- tai 16-bittinen tarkkuus) |
| Suurimmat mitat | Käytännössä rajoittamaton (tukee mielivaltaista 64-bittistä koordinaatistoa) |
| Läpinäkyvyys | Ei läpinäkyvyyttä |
| Suoratoisto ja progressiivinen lataus | Peräkkäinen toisto rivi kerrallaan |
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-perheen jäsen | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | W3C-standardi, joka ei kuulu Netpbm-perheeseen |
| Tunnistetavut | 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 vioittumistavat ja heksadesimaalinen palautusopas
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.app Netpbm Converter -ohjelmalla.
Tietoturva-analyysi ja tiedostojäsentimien hyö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 yli luku luettaessa virheellisiä ASCII-numerotokeneita.
- Palvelunestohyökkäys massiivisen muistinvarauksen kautta, joka käynnistyy väärennetyillä otsikomitoilla.
Tietoturvan parhaat käytännöt: Aseta katto suurimmille sallituille mitoille ja muistinvarausrajoille ennen pikselivirtojen lukemista.
Historia ja virstanpylväät
Tärkeimmät edut
- PGM:n kompakti rakenne voi helpottaa peruslukijan toteuttamista, mutta näytesyvyyksien, otsakkeiden ja virheellisten syötteiden käsittely vaatii silti huolellisuutta.
- 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 fyysisistä mitoista, väriavaruuksista tai maantieteellisestä sijainnista.
- 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?
PGM tallentaa harmaasävyarvoja. Muunna se PNG-muotoon, jos haluat häviöttömän kuvan, jota monet katseluohjelmat tukevat, tai JPEG-muotoon, jos valokuvamaisesta kuvasta halutaan pienempi tiedosto. Muunnin toimii selaimessasi.