Portable Graymap (.pgm)

Netpbm Standardi

Portable 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:

Valitse tai pudota tiedostot tähän

Yksityisesti - tiedostot eivät koskaan poistu laitteeltasi

tai liitä Ctrl+V
Tietosuojatakuu: 0 % verkkosiirtoa Ulkoisille palvelimille ei ole ladattu yhtään tavua. Kaikki käsittely tapahtui paikallisesti selaimen hiekkalaatikossa.

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 35

ASCII-ESITYSTAPA: P2 / P5

Standardointi: Netpbm Library Standard

Tekniset tiedot

SäiliöarkkitehtuuriASCII-muotoinen (P2) tai binäärinen (P5) Netpbm-tiedosto, jossa ilmoitetaan leveys, korkeus, harmaasävyjen enimmäisarvo ja pikselivirta
PakkausPakkaamattomat binääritavut tai ihmisen luettavissa olevat ASCII-lukunumerot
Tavujärjestys (Endianness)Big-Endian (16-bittisille binäärinäytteille P5-tilassa)
VäriavaruudetLineaarinen harmaasävy tai sRGB-harmaasävy
Kanavat ja rakenneYksi harmaasävykanava (8- tai 16-bittinen tarkkuus)
Suurimmat mitatKäytännössä rajoittamaton (tukee mielivaltaista 64-bittistä koordinaatistoa)
LäpinäkyvyysEi läpinäkyvyyttä
Suoratoisto ja progressiivinen latausPeräkkäinen toisto rivi kerrallaan

Tekninen vertailumatriisi: PGM vs. kilpailijat

Tekninen attribuuttiPGM (Nykyinen)PBMPPMPNG
VäritilaHarmaasävy (8-bittinen / 16-bittinen)1-bittinen yksivärinenRGB Truecolor (24-bittinen / 48-bittinen)Harmaasävy, RGB, RGBA
Netpbm-perheen jäsenPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)W3C-standardi, joka ei kuulu Netpbm-perheeseen
TunnistetavutP2 (ASCII) / P5 (Binääri)P1 (ASCII) / P4 (Binääri)P3 (ASCII) / P6 (Binääri)‰PNG....
PakkausPakkaamatonPakkaamatonPakkaamatonHä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

200016-bittinen syvyys (maksimiarvo jopa 65535) standardoitu binäärisessä P5-tilassa tieteelliseen kuvantamiseen.
1993Sisällytetty Netpbm-työkalupakettiin vakiomuotoiseksi välivaiheen harmaasävymuodoksi.
1989Jef Poskanzer luo PGM:n täydentämään PBM:ää täydellä 256-tasoisella harmaasävytuella.

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.