Portable Graymap (.pgm)
Netpbm StandartPortable Graymap Format (PGM), bilgisayarlı görü, robotik, optik inceleme ve dijital görüntü işleme algoritmalarında yaygın olarak kullanılan Netpbm ailesinin gri tonlamalı görüntü biçimidir.
İncele ve Meta Veriler
İşletim sistemleri ve dosya çözümleyicileri, PGM dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
Bayt düzeyinde başlık imzası (sihirli baytlar)
İşletim sistemleri ve dosya çözümleyicileri, PGM dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
HEX İMZASI (OFSET 0):
50 32 / 50 35ASCII GÖSTERİMİ: P2 / P5
Standartlaştırma: Netpbm Library Standard
Teknik Özellikler
| Kapsayıcı mimarisi | Genişlik, yükseklik, en yüksek gri değeri ve piksel akışını içeren ASCII (P2) veya ikili (P5) Netpbm biçimi |
| Sıkıştırma | Sıkıştırılmamış ham ikili baytlar veya insanlarca okunabilir ASCII metin sayıları |
| Bayt Düzeni (Endianness) | Büyük uçlu (P5 kipinde 16 bit ikili örnekler için) |
| Renk Uzayları | Linear Grayscale or sRGB Grayscale |
| Kanallar ve Yapı | 1 kanallı gri tonlama (8 bit veya 16 bit hassasiyet) |
| Maksimum Boyutlar | Pratikte sınırsız (istenen 64 bit koordinat alanını destekler) |
| Şeffaflık | None |
| Akış ve Aşamalı İşleme | Satır satır sıralı akış oynatımı |
Teknik karşılaştırma matrisi: PGM ve rakipleri
| Teknik Nitelik | PGM (Güncel) | PBM | PPM | PNG |
|---|---|---|---|---|
| Renk Modu | Gri Tonlama (8-bit / 16-bit) | 1-bit Monokrom | RGB Truecolor (24-bit / 48-bit) | Gri Tonlama, RGB, RGBA |
| Netpbm Ailesindeki Biçim | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Taşınabilir Piksel Haritası) | Netpbm dışı W3C standardı |
| Sihirli Baytlar | P2 (ASCII) / P5 (İkili) | P1 (ASCII) / P4 (İkili) | P3 (ASCII) / P6 (İkili) | ‰PNG.... |
| Sıkıştırma | Sıkıştırılmamış | Sıkıştırılmamış | Sıkıştırılmamış | Kayıpsız Deflate |
Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu
Görüntü ters veya bembeyaz ve aşırı pozlanmış görüntülenir.
Kök Neden: Başlıkta eşleşmeyen 'maxval' parametresi (ör. maxval 255 yerine 1 olarak bildirilmiş).
Kurtarma: maxval başlık satırını düzelt veya File2File.app Netpbm Converter ile dönüştür.
Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri
PGM kod çözücüleri, arabellek taşmasını önlemek için ayrıştırılan piksel sayılarının bildirilen boyutlarla eşleştiğini dikkatlice doğrulamalıdır.
Bilinen Saldırı Vektörleri
- Genişlik * yükseklik * (maxval > 255 ? 2 : 1) arabellek tahsisi sırasında tamsayı taşması.
- Bozuk ASCII sayı belirteçleri okunurken arabellek okuma sınırı aşımı.
- Sahte başlık boyutları tarafından tetiklenen devasa bellek ayırma yoluyla hizmet reddi (DoS).
Savunmaya yönelik en iyi uygulamalar: Piksel akışlarını okumadan önce izin verilen boyutlara ve bellek ayırma sınırlarına üst sınır koy.
Tarihsel kökenler ve önemli dönüm noktaları
Temel Avantajlar ve Artılar
- PGM’nin kompakt yapısı temel okuyucuların uygulanmasını kolaylaştırabilir; ancak örnek derinliği, başlıklar ve hatalı girdiler dikkatle ele alınmalıdır.
- Yerel 16-bit gri tonlama desteği, onu yükseklik haritaları, derinlik haritaları ve termal görüntüleme için ideal kılar.
- ASCII modu (P2), standart metin düzenleyicilerinde ham piksel değerlerinin doğrudan incelenmesine ve işlenmesine izin verir.
Teknik Kısıtlamalar ve Eksiler
- Sıkıştırma yok: PNG gibi sıkıştırılmış formatlara kıyasla büyük dosya boyutları.
- Fiziksel boyutlar, renk uzayları veya coğrafi konum için meta verilerden yoksundur.
- Kesinlikle tek kanallıdır: Renk verilerini veya alfa şeffaflığını depolayamaz.
İlginç Teknik Bilgiler
- OpenCV, ROS (Robot İşletim Sistemi) ve makine vizyonu sistemleri, SLAM navigasyon haritaları için sıklıkla PGM kullanır.
- Oyun geliştiricileri genellikle 16-bit PGM dosyalarını arazi yükseklik haritaları olarak kullanırlar çünkü ham yükseklik verileri sıkıştırılmamıştır ve yüklenmesi kolaydır.
- Başlıktaki 'maxval' parametresi maksimum parlaklık değerini tanımlar (genellikle 8-bit için 255 veya 16-bit için 65535).
Sıkça Sorulan Teknik Sorular
PGM formatı ne için kullanılır?
PGM öncelikle bilgisayarla görü (OpenCV), robotik (ROS harita dosyaları), bilimsel görüntüleme ve 3D arazi yükseklik haritası (heightmap) oluşturmada kullanılır.
P2 ve P5 PGM dosyaları arasındaki fark nedir?
P2, her pikselin yazılı bir sayı olduğu düz ASCII metin formatıdır; P5 ise pikselleri kompakt ikili baytlar olarak saklar.
PGM'yi JPG veya PNG'ye nasıl dönüştürebilirim?
PGM gri ton örneklerini saklar. Geniş görüntüleyici desteğine sahip kayıpsız bir görüntü için PNG’ye; daha küçük, fotoğraf türü bir dosya gerektiğinde JPEG’e dönüştürün. Bu dönüştürücü tarayıcınızda çalışır.