Portable Graymap (.pgm)
Netpbm StandartsPārnēsājamā pelēktoņu attēlu formāts (Portable Graymap Format jeb PGM) ir Netpbm saimes pelēktoņu attēlu specifikācija, ko plaši izmanto datorredzē, robotikā, optiskajā inspekcijā un digitālās attēlu apstrādes algoritmos.
Pārbaudīt un metadati
Operētājsistēmas un failu analizatori identificē PGM failus, pārbaudot sākotnējo bināro baitu secību:
Baitu līmeņa galvenes paraksts (maģiskie baiti)
Operētājsistēmas un failu analizatori identificē PGM failus, pārbaudot sākotnējo bināro baitu secību:
HEKSADECIMĀLAIS PARAKSTS (NOBĪDE 0):
50 32 / 50 35ASCII ATTEIOLOJUMS: P2 / P5
Standartizācija: Netpbm Library Standard
Tehniskās specifikācijas
| Konteinera arhitektūra | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Saspiešana | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Baitu secība | Big-Endian (for 16-bit binary samples in P5 mode) |
| Krāsu telpas | Linear Grayscale or sRGB Grayscale |
| Kanāli un struktūra | 1 channel grayscale (8-bit or 16-bit precision) |
| Maks. izmēri | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Caurspīdīgums | None |
| Straumēšana un progresīvā ielāde | Sequential row-by-row streaming playback |
Tehniskā salīdzinājuma matrica: PGM pret konkurentiem
| Tehniskais atribūts | PGM (Pašreizējais) | PBM | PPM | PNG |
|---|---|---|---|---|
| Krāsu režīms | Pelēktoņu (8 bitu / 16 bitu) | 1 bita vienkrāsains | RGB patiesā krāsa (24 bitu / 48 bitu) | Pelēktoņi, RGB, RGBA |
| Netpbm radinieks | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Ne-Netpbm W3C standarts |
| Maģiskie baiti | P2 (ASCII) / P5 (Binārs) | P1 (ASCII) / P4 (Binārs) | P3 (ASCII) / P6 (Binārs) | ‰PNG.... |
| Kompresija | Nesaspiests | Nesaspiests | Nesaspiests | Bezzudumu Deflate |
Biežākie bojājumu veidi un heksadecimālās atkopšanas ceļvedis
Attēls tiek parādīts apgriezts vai pilnībā pārgaišināts baltā krāsā.
Pamatcēlonis: Neatbilstošs parametrs 'maxval' galvenē (piem., maxval deklarēts kā 1, nevis 255).
Atkopšana: Izlabojiet maxval galvenes rindu vai pārkodējiet ar File2File Netpbm pārveidotāju.
Drošības analīze un parsētāja uzbrukuma vektori
PGM dekodētājiem rūpīgi jāpārbauda, vai parsētais pikseļu skaits sakrīt ar deklarētajiem izmēriem, lai novērstu bufera pārpildi.
Zināmie uzbrukuma vektori
- Veselu skaitļu pārpilde platums * augstums * (maxval > 255 ? 2 : 1) bufera piešķiršanas laikā.
- Bufera pārlasīšana, lasot nepareizi formatētus ASCII skaitļu marķierus.
- Pakalpojuma atteice (DoS) masīvas atmiņas piešķiršanas dēļ, ko izraisa safabricēti galvenes izmēri.
Aizsardzības labākā prakse:
Vēsturiskā izcelsme un pavērsieni
Galvenās priekšrocības un plusi
- Nulles sarežģītība: ārkārtīgi vienkārši parsējams un rakstāms valodās C, Python vai WebAssembly bez ārējām bibliotēkām.
- Vietējais 16 bitu pelēktoņu atbalsts padara to ideāli piemērotu augstuma kartēm, dziļuma kartēm un termālajai attēlveidošanai.
- ASCII režīms (P2) ļauj tieši pārbaudīt un manipulēt ar neapstrādātām pikseļu vērtībām standarta teksta redaktoros.
Tehniskie ierobežojumi un mīnusi
- Nav kompresijas: liels faila apjoms salīdzinājumā ar saspiestiem formātiem, piemēram, PNG.
- Trūkst metadatu fiziskajiem izmēriem, krāsu telpām vai ģeolokācijai.
- Stingri viena kanāla: nevar saglabāt krāsu datus vai alfa caurspīdīgumu.
Interesanti tehniski fakti
- OpenCV, ROS (Robot Operating System) un mašīnredzes sistēmas bieži izmanto PGM SLAM navigācijas kartēm.
- Spēļu izstrādātāji bieži izmanto 16 bitu PGM failus kā reljefa augstuma kartes, jo neapstrādātie augstuma dati nav saspiesti un tos ir viegli ielādēt.
- Galvenē esošais parametrs 'maxval' nosaka maksimālo spilgtuma vērtību (parasti 255 8 bitu vai 65535 16 bitu gadījumā).
Bieži uzdotie tehniskie jautājumi
Kam tiek izmantots PGM formāts?
PGM galvenokārt tiek izmantots datorredzē (OpenCV), robotikā (ROS karšu faili), zinātniskajā attēlveidošanā un 3D reljefa augstuma karšu ģenerēšanā.
Kāda ir atšķirība starp P2 un P5 PGM failiem?
P2 ir vienkāršs ASCII teksts, kur katrs pikselis ir uzrakstīts skaitlis, bet P5 saglabā pikseļus kā kompaktus bināros baitus.
Kā es varu konvertēt PGM uz JPG vai PNG?
Augšupielādējiet savu PGM failu vietnē File2File.app, lai to konvertētu uz PNG vai JPG tieši savā pārlūkprogrammā ar pilnīgu privātumu.