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 ja metatiedot

Käyttöjärjestelmät ja tiedostoanalyysaattorit tunnistavat PGM-tiedostot tarkistamalla tiedoston alun binäärisarjan:

Valitse tai pudota tiedostot tähän

100 % yksityinen selaimen sisäinen muunnos - tiedostot eivät poistu laitteeltasi

tai liitä Ctrl+V
Tietosuojatakuu: 0 % verkkosiirtoa 0 tavua ladattu ulkoisille palvelimille. Kaikki käsittely tapahtui paikallisesti selaimen hiekkalaatikossa.

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 35

ASCII-ESITYSTAPA: P2 / P5

Standardointi: Netpbm Library Standard

Tekniset tiedot

SäiliöarkkitehtuuriASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream
PakkausUncompressed raw binary bytes or human-readable ASCII text numbers
Tavujärjestys (Endianness)Big-Endian (for 16-bit binary samples in P5 mode)
VäriavaruudetLinear Grayscale or sRGB Grayscale
Kanavat ja rakenne1 channel grayscale (8-bit or 16-bit precision)
Suurimmat mitatPractically unlimited (supports arbitrary 64-bit coordinate space)
LäpinäkyvyysNone
Suoratoisto ja progressiivinen latausSequential row-by-row streaming playback

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-sisarPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)Ei-Netpbm W3C-standardi
Maagiset tavutP2 (ASCII) / P5 (Binääri)P1 (ASCII) / P4 (Binääri)P3 (ASCII) / P6 (Binääri)‰PNG....
PakkausPakkaamatonPakkaamatonPakkaamatonHä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

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

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ä.