تدرج رمادي محمول (.pgm)
معيار قياسيتنسيق الصور الرمادية المحمولة (PGM) مواصفة الصور ذات التدرج الرمادي ضمن عائلة Netpbm، وتُستخدم على نطاق واسع في الرؤية الحاسوبية والروبوتات والفحص البصري وخوارزميات معالجة الصور الرقمية.
فحص البيانات الوصفية
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات PGM من خلال فحص تسلسل البايت الثنائي البادئ:
توقيع رأس الملف على مستوى البايت (Magic Bytes)
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات PGM من خلال فحص تسلسل البايت الثنائي البادئ:
التوقيع الست عشري (الإزاحة 0):
50 32 / 50 35تمثيل ASCII: P2 / P5
التوحيد القياسي: معيار مكتبة Netpbm
المواصفات الفنية
| هيكلية الحاوية | تنسيق Netpbm نصي (P2) أو ثنائي (P5)، يحدد العرض والارتفاع والقيمة القصوى للرمادي وتدفق البكسلات |
| الضغط | بايتات ثنائية خام غير مضغوطة أو أرقام ASCII مقروءة للبشر |
| ترتيب البايتات (Endianness) | ترتيب البايتات الكبير للعينات الثنائية بعمق 16 بت في وضع P5 |
| مساحات الألوان | تدرج رمادي خطي أو sRGB |
| القنوات والبنية | قناة واحدة بتدرج رمادي ودقة 8 أو 16 بت |
| الحد الأقصى للأبعاد | غير محدود عملياً (يدعم إحداثيات بأي طول) |
| الشفافية | لا يوجد |
| البث والتحميل التدرجي | يدعم القراءة المتتابعة وعرض الصورة صفاً بعد صف |
مصفوفة المقارنة التقنية: PGM مقابل المنافسين
| السمة التقنية | PGM (الحالي) | PBM | PPM | PNG |
|---|---|---|---|---|
| وضع الألوان | تدرج رمادي (8 بت / 16 بت) | أحادية اللون 1 بت | ألوان حقيقية RGB (24 بت / 48 بت) | تدرج رمادي، RGB، RGBA |
| شقيق Netpbm | PGM (صورة رمادية محمولة) | PBM (صورة نقطية محمولة) | PPM (صورة بكسل محمولة) | معيار W3C من غير Netpbm |
| بايتات التعرّف | P2 (نصي) / P5 (ثنائي) | P1 (نصي) / P4 (ثنائي) | P3 (نصي) / P6 (ثنائي) | ‰PNG.... |
| الضغط | غير مضغوط | غير مضغوط | غير مضغوط | ضغط Deflate بدون فقدان |
أنماط التلف الشائعة ودليل الاسترداد بالنظام الست عشري
تظهر الصورة مقلوبة أو بيضاء بالكامل.
السبب الجذري: معامل 'maxval' غير متطابق في الترويسة (مثل الإعلان عن maxval كـ 1 بدلاً من 255).
الاسترداد: صحّح سطر maxval في الترويسة أو حوّل الملف باستخدام محول Netpbm في File2File.app.
تحليل الأمان ومتجهات الهجوم على المحلّل
ينبغي لمفككات PGM التحقق من تطابق عدد البكسلات المقروء مع الأبعاد المعلنة لتجنب تجاوز المخزن المؤقت.
ناقلات الهجوم المعروفة
- تجاوز للأعداد الصحيحة أثناء تخصيص مخزن مؤقت بحجم العرض × الارتفاع × (2 إذا تجاوز maxval القيمة 255، وإلا 1).
- قراءة تتجاوز حدود المخزن المؤقت عند تحليل رموز أرقام ASCII المشوهة.
- حجب الخدمة بسبب تخصيص مساحة ذاكرة هائلة نتيجة أبعاد مصطنعة في الترويسة.
أفضل الممارسات الدفاعية: حدّد أقصى الأبعاد المسموح بها وقيود تخصيص الذاكرة قبل قراءة تدفقات البكسلات.
الأصول التاريخية والمحطات الرئيسية
المزايا الرئيسية والإيجابيات
- قد تجعل بنية PGM المدمجة تنفيذ برامج قراءة أساسية أمرًا مباشرًا، لكن التعامل مع أعماق العينات والترويسات والمدخلات المشوهة يتطلب عناية.
- يدعم أصلياً التدرج الرمادي بعمق 16 بت، ما يجعله مناسباً لخرائط الارتفاع والعمق والتصوير الحراري.
- يتيح وضع ASCII (P2) فحص قيم البكسلات الخام وتعديلها مباشرةً في محررات النصوص العادية.
القيود الفنية والسلبيات
- لا يستخدم الضغط، لذا تكون ملفاته كبيرة مقارنةً بتنسيقات مضغوطة مثل PNG.
- لا يتضمن بيانات وصفية عن الأبعاد الفيزيائية أو فضاءات الألوان أو الموقع الجغرافي.
- يقتصر على قناة واحدة، ولا يمكنه تخزين بيانات الألوان أو شفافية ألفا.
معلومات تقنية طريفة
- تستخدم OpenCV وROS (نظام تشغيل الروبوتات) وأنظمة الرؤية الآلية ملفات PGM كثيراً لخرائط الملاحة في SLAM.
- يستخدم مطورو الألعاب ملفات PGM ذات عمق 16 بت لخرائط ارتفاع التضاريس، لأن بيانات الارتفاع الخام غير مضغوطة وسهلة التحميل.
- تحدد قيمة maxval في الترويسة أقصى درجة سطوع (عادةً 255 لعمق 8 بت أو 65535 لعمق 16 بت).
الأسئلة التقنية المتكررة
فيمَ تُستخدم صيغة PGM؟
تُستخدم صيغة PGM بشكل أساسي في الرؤية الحاسوبية (OpenCV)، والروبوتات (ملفات خريطة ROS)، والتصوير العلمي، وإنشاء خرائط ارتفاع التضاريس ثلاثية الأبعاد.
ما الفرق بين ملفات P2 و P5 PGM؟
تنسيق P2 عبارة عن نص ASCII عادي حيث يتم كتابة كل بكسل كرقم، بينما يخزن التنسيق P5 البكسلات كبايتات ثنائية مضغوطة.
كيف يمكنني تحويل PGM إلى JPG أو PNG؟
قم برفع ملف PGM الخاص بك إلى File2File.app لتحويله إلى PNG أو JPG مباشرة في متصفحك مع الحفاظ على الخصوصية الكاملة.