Kaikista PGM tiedostoista
yksinkertainen tiedostomuoto harmaasävykuville
PGM on PBM-perheen harmaasävyversio. Kun PBM tunnistaa vain mustan ja valkoisen, PGM mahdollistaa jopa 65 535 sävyä näiden kahden ääripään välillä. Jokainen pikseli kuvataan yhdellä numerolla: 0 on musta, suurin arvo on valkoinen. PGM tarkoittaa "Portable Gray Map" ja sen kehitti Jef Poskanzer vuoden 1988 lopulla PBM:n laajennuksena. Koko formaattiperheen historiasta voit lukea artikkelistani PBM:stä.
TLDR:
PGM on Netpbm-perheen harmaasävyformaatti. Se toimii kuten PBM, mutta siinä on enemmän kuin kaksi ”väriä” – nimittäin harmaasävyjä. PGM:ää käytetään edelleen kuvankäsittelyssä, koulutuksessa ja välimuodona putkistoissa. Jos olet lukenut PBM-artikkelin, tunnet periaatteen: PGM tekee siitä yksinkertaisesti harmaamman. Värikäs versio on lopulta PPM.
Tekninen rakenne
PGM-kuva eroaa PBM:stä täsmälleen yhdellä ylimääräisellä rivillä otsikossa: maksimiarvolla (Maxval). Tämä määrittää, kuinka monta harmaasävyä kuva käyttää. Myös PGM:llä on mahdollista piirtää kuva "ruutupaperille". Ruutujen täyttämisen sijaan tässä käytetään jokaisessa ruudussa lukuja, jotka edustavat kirkkautta.
| Osa | Esimerkki | Merkitys |
|---|---|---|
| Magic Number | P2 |
Plain PGM (ASCII-versio) |
| Kommentti | # mein bild |
Valinnainen, aloitetaan # aloitetaan |
| Leveys Korkeus | 24 7 |
Mitat pikseleinä |
| Maxval | <15 |
Suurin harmaasävy (1–65535) |
| Rasteritiedot | 0 2 4 6 ... |
Harmaasävyt pikseliä kohti |
Klassinen FEEP-esimerkki näyttää PGM-muodossa tältä: jokaiselle kirjaimelle annetaan oma kirkkaustaso. (Paremman esityksen saamiseksi monospace-fontilla olen valinnut Maxval-arvoksi 8)
P2 # feep.pgm 24 7 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 8 8 8 0 0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 8 0 0 2 2 2 0 0 0 4 4 4 0 0 0 6 6 6 0 0 0 8 8 8 8 0 0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 0 0 0 2 0 0 0 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Teksti FEEP on tunnistettavissa kuten PBM-esimerkissä, mutta kirjaimet vaalenevat vasemmalta oikealle: F on tummanharmaa (2), E keskigray (4 ja 6), P valkoinen (8).
Maxval: ratkaiseva ero PBM:n ja PGM:n välillä
Maxval määrittää kuvan värisyvyyden. Maxval-arvolla 1 PGM käyttäytyy muuten täsmälleen kuten PBM. Maxval-arvolla 255 on 256 harmaasävyä, mikä vastaa klassista 8-bittistä harmaasävykuvaa. Arvot yli 255 ovat mahdollisia (jopa 65535), mutta niitä käytetään käytännössä harvoin.
Plain vs. Raw: P2 ja P5
Aivan kuten PBM:ssä, myös PGM:ssä on ASCII- ja binäärimuoto:
| Ominaisuus | Plain PGM (P2) |
Raw PGM (P5) |
|---|---|---|
| Pikselitiedot | ASCII-desimaaliluvut | Binäärinen, 1 tai 2 tavua pikseliä kohti |
| Ihmisen luettavissa | Kyllä, kokonaan | Vain otsikko |
| Tallennustilaa pikseliä kohti | Vaihteleva (numerot + välilyönnit) | 1 tavu (Maxval ≤ 255) tai 2 tavua |
| Rivin enimmäispituus | Suositeltu 70 merkkiä | Ei rajoitusta |
Raw-versio (P5) on Netpbm-työkalujen standardi. Jos Maxval on yli 255, käytetään kahta tavua pikseliä kohti, Big-Endian.
Tyypillisiä käyttökohteita
PGM:ää käytetään kaikkialla, missä tärkeää on pelkkä pikselikohtainen kirkkausarvo eikä värillä ole merkitystä:
– Tiede ja lääketiede: röntgenkuvat, magneettikuvaukset ja mikroskooppikuvat käsitellään usein harmaasävykuvina. PGM sopii tähän tarkoitukseen yksinkertaisuutensa ja häviöttömän tallennuksensa ansiosta.
– Tietokonenäkö: Reunatunnistimet (Sobel, Canny), kynnyarvoalgoritmit ja histogrammanalyysit toimivat harmaasävyisillä tiedoilla. PGM toimittaa nämä ilman ylimääräistä kuormitusta.
– Korkeuskartat ja maastomallit: Jokainen pikseli edustaa korkeutta – sovellustapaus, joka sopii täydellisesti PGM:n ”yksi arvo per pikseli” -logiikkaan.
– Läpinäkyvyysmaskit: Netpbm:ssä PGM:ää käytetään myös läpinäkyvyysmaskina. Tällöin valkoinen tarkoittaa täyttä peittävyyttä ja musta täydellistä läpinäkyvyyttä.
– Opetus: Kuten PBM, myös PGM sopii erinomaisesti kuvankäsittelyn (ei kuvankorjauksen) perusteiden opettamiseen.
Gamma ja väriavaruus
Spesifikaation mukaan harmaasävyt eivät ole lineaarisia, vaan noudattavat ITU-R BT.709:n (gamma 2.2) gamma-siirtofunktiota. Käytännössä monet ohjelmat eivät kuitenkaan noudata tätä ja tallentavat lineaarisia arvoja. Netpbm-työkalu pnmgamma pystyy muuntamaan näiden kahden variantin välillä. Myös nykyään yleisempi sRGB-siirtotoiminto poikkeaa hieman standardista BT.709, ja todellisuudessa useimmat ohjelmat käyttävät yksinkertaisesti sRGB:tä ja kutsuvat tulosta PGM:ksi.
Lähteet
Netpbm PGM-formaattispesifikaatio
PBM-artikkeli, jossa on formaattiperheen historia
.b0 { color: #ccc; }
.b2 {color: #222; }
.b4 {color:#444;}
.b6 {color:#666;}
.b8 { color: #888; }
const el = document.getElementById('pgm');
el.innerHTML = el.textContent.replace(/([0-9])/g, '<span class="b$1">$1</span>');
Muunna, avaa ja muokkaa PGM tiedostoja
Tietoja PGM-tiedostoista
- Ohjelmisto PGM-tiedostojen avaamiseen
- IrfanView
- XnView
- GIMP
- ImageMagick
- Ohjelmisto PGM-tiedostojen muokkaamiseen
- GIMP
- ImageMagick
- Paint.NET
- MIME-tyyppi PGM: lle
- image/x-portable-graymap
- image/x-pgm
Ei kommentteja