Portable Graymap (.pgm)

Netpbm Standard

Portable Graymap Format (PGM) on Netpbm perekonna halltoonide pildi spetsifikatsioon, mida kasutatakse laialdaselt arvutinägemise, robootika, optilise kontrolli ja digitaalse pilditöötluse algoritmides.

Kontrolli ja metaandmed

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad PGM faile, kontrollides algset binaarset baidijada:

Vali või lohista failid siia

100% privaatne konversioon brauseris - failid ei lahku kunagi sinu seadmest

või kleebi Ctrl+V
Null-võrguülekande privaatsusgarantii: 0 baiti laaditakse üles välistesse serveritesse. Kogu töötlemine toimub lokaalselt sinu brauseri liivakastis.

Baidi-taseme päise allkiri (maagilised baidid)

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad PGM faile, kontrollides algset binaarset baidijada:

HEX-ALLKIRI (NIHE 0):

50 32 / 50 35

ASCII-ESITUS: P2 / P5

Standardiseerimine: Netpbm Library Standard

Tehnilised andmed

Konteineri arhitektuurASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream
TihendamineUncompressed raw binary bytes or human-readable ASCII text numbers
Baitide järjekord (Endianness)Big-Endian (for 16-bit binary samples in P5 mode)
VärviruumidLinear Grayscale or sRGB Grayscale
Kanalid ja struktuur1 channel grayscale (8-bit or 16-bit precision)
Max mõõtmedPractically unlimited (supports arbitrary 64-bit coordinate space)
LäbipaistvusNone
Voogedastus ja progressiivsusSequential row-by-row streaming playback

Tehniline võrdlusmaatriks: PGM vs konkurendid

Tehniline atribuutPGM (Praegune)PBMPPMPNG
VärvirežiimHalltoonid (8-bitine / 16-bitine)1-bitine ühevärvilineRGB Truecolor (24-bitine / 48-bitine)Halltoonid, RGB, RGBA
Netpbm-i sugulanePGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)Mitte-Netpbm W3C standard
Maagilised baididP2 (ASCII) / P5 (Binaarne)P1 (ASCII) / P4 (Binaarne)P3 (ASCII) / P6 (Binaarne)‰PNG....
TihendusTihendamataTihendamataTihendamataKadudeta Deflate

Levinud riknemisvead ja heksataaste juhend

Pilt kuvatakse inverteeritult või täiesti valgeks põlenuna.

Juurpõhjus: Sobimatu 'maxval' parameeter päises (nt maxval on deklareeritud 1 asemel 255).

Taastamine: Parandage maxval päiserea rida või transkodeerige File2File Netpbm Converteri abil.

Turvaanalüüs ja parsimisründevektorid

PGM-i dekoodrid peavad hoolikalt kontrollima, kas parsitavad pikslite arvud vastavad deklareeritud mõõtmetele, et vältida puhvri ületäitmist.

Teadaolevad ründavektorid

  • Täisarvu ületäitumine laius * kõrgus * (maxval > 255 ? 2 : 1) puhvri eraldamisel.
  • Puhvrist ülelugemine vigaste ASCII numbritokenite lugemisel.
  • Teenusetõkestus (DoS) tohutu mälueralduse kaudu, mille käivitavad võltsitud päise mõõtmed.

Kaitsealased parimad tavad:

Ajalooline taust ja verstapostid

200016-bitine sügavus (maxval kuni 65535) standardiseeritakse binaarses P5-režiimis teadusliku pildistamise jaoks.
1993Lisatakse Netpbm-i tööriistakomplekti standardse vahepealse halltoonide vorminguna.
1989Jef Poskanzer loob PGM-i, et täiendada PBM-i täieliku 256-tasemelise halltoonide toega.

Peamised eelised

  • Null keerukus: äärmiselt lihtne parsida ja kirjutada keeltes C, Python või WebAssembly ilma väliste teekideta.
  • Kohalik 16-bitine halltoonide tugi teeb selle ideaalseks kõrguskaartide, sügavuskaartide ja termopildistamise jaoks.
  • ASCII-režiim (P2) võimaldab toor-piksliväärtuste otsest kontrollimist ja manipuleerimist tavalistes tekstiredaktorites.

Tehnilised piirangud ja puudused

  • Tihendus puudub: suured failimahud võrreldes tihendatud vormingutega nagu PNG.
  • Puuduvad metaandmed füüsiliste mõõtmete, värviruumide või geograafilise asukoha jaoks.
  • Rangelt ühekanaliline: ei saa salvestada värviandmeid ega alfapaistvust.

Huvitavaid tehnilisi fakte

  • OpenCV, ROS (Robot Operating System) ja masinnägemissüsteemid kasutavad PGM-i sageli SLAM-navigatsioonikaartide jaoks.
  • Mänguarendajad kasutavad 16-bitiseid PGM-faile sageli maastiku kõrguskaartidena, kuna toor-kõrgusandmed on tihendamata ja neid on lihtne laadida.
  • Päises olev parameeter 'maxval' määratleb maksimaalse heledusväärtuse (tavaliselt 255 8-bitise või 65535 16-bitise puhul).

Korduma kippuvad tehnilised küsimused

Milleks kasutatakse PGM-vormingut?

PGM-i kasutatakse peamiselt arvutinägemises (OpenCV), robootikas (ROS-i kaardifailid), teaduslikus pilditöötluses ja 3D-maastiku kõrguskaardi genereerimises.

Mis vahe on P2 ja P5 PGM-failidel?

P2 on lihtne ASCII tekst, kus iga piksel on kirjutatud number, samas kui P5 salvestab piksleid kompaktsete binaarsete baitidena.

Kuidas saan ma PGM-i JPG-ks või PNG-ks teisendada?

Laadige oma PGM-fail üles lehele File2File.app, et teisendada see PNG-ks või JPG-ks otse oma brauseris täieliku privaatsusega.