Portable Graymap (.pgm)

Netpbm Standart

Portable 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:

Dosyaları buraya seç veya bırak

Özel - dosyalar cihazınızdan asla ayrılmaz

veya yapıştır Ctrl+V
Sıfır Ağ Aktarımı Gizlilik Garantisi: Harici sunuculara 0 bayt yüklendi. Tüm işlemler tarayıcındaki korumalı alanda (sandbox) yerel olarak gerçekleştirildi.

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 35

ASCII GÖSTERİMİ: P2 / P5

Standartlaştırma: Netpbm Library Standard

Teknik Özellikler

Kapsayıcı mimarisiGeniş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ırmaSı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 BoyutlarPratikte sınırsız (istenen 64 bit koordinat alanını destekler)
ŞeffaflıkNone
Akış ve Aşamalı İşlemeSatır satır sıralı akış oynatımı

Teknik karşılaştırma matrisi: PGM ve rakipleri

Teknik NitelikPGM (Güncel)PBMPPMPNG
Renk ModuGri Tonlama (8-bit / 16-bit)1-bit MonokromRGB Truecolor (24-bit / 48-bit)Gri Tonlama, RGB, RGBA
Netpbm Ailesindeki BiçimPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Taşınabilir Piksel Haritası)Netpbm dışı W3C standardı
Sihirli BaytlarP2 (ASCII) / P5 (İkili)P1 (ASCII) / P4 (İkili)P3 (ASCII) / P6 (İkili)‰PNG....
SıkıştırmaSı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ı

2000Bilimsel görüntüleme için ikili P5 modunda 16-bit derinlik (65535'e kadar maxval) standartlaştırıldı.
1993Standart ara gri tonlama formatı olarak Netpbm araç setine eklendi.
1989Jef Poskanzer, PBM'yi tam 256 seviyeli gri tonlama desteğiyle tamamlamak için PGM'yi oluşturdu.

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.