دليل أداة compare في أوبونتو لمقارنة الصور وأتمتتها

نظرة عامة

تُعد عملية فحص التباين البصري واحتساب الفروقات النقطية (Pixels) بين نسختين من الصور عبر الطرفية (Terminal) في بيئة لينكس ركيزة أساسية لضمان جودة العرض البرمجي واختبار الواجهات تلقائيًا. يستعرض هذا الدليل العملي كيفية توظيف أداة compare، بدءًا من استخراج صور الفروقات البصرية وتحديد مقاييس الخطأ الحسابية، وصولاً إلى بناء سكربتات الأتمتة المتقدمة في بيئات العمل الحقيقية.

1. تثبيت حزمة ImageMagick والتحقق من أداة compare

قبل الشروع في التجارب العملية، نُحدّث مستودعات النظام البرمجية ونثبت حزمة imagemagick عبر مدير الحزم:

تحديث مستودعات الحزم وتثبيت أداة imagemagick

تُتيح أداة compare للمهندسين إمكانية تقييم التفاوت الشكلي والرياضي بين ملفين رسوميين وإنتاج خريطة بصرية توضح مواقع الاختلاف بدقة متناهية.
للتحقق من سلامة التثبيت في النظام ومعاينة إصدار البرنامج وبيئة البناء، ننفذ الأمر compare -version:
⚙️ [أبرز الخيارات البرمجية]

-metric : تحديد الخوارزمية الرياضية المعتمدة لحساب نسبة التباين وحجم الخطأ بين الصورتين (مثل AE وRMSE وPSNR).
-fuzz : تعيين هامش سماحية مئوي (كالنسبة 5%) لتجاهل الفروق اللونية الطفيفة واعتبارها متطابقة تمامًا.
-highlight-color : تخصيص لون بارز لتمييز وإظهار مساحات البكسلات المتباينة بوضوح.
-lowlight-color : ضبط لون خافت لتعتيم المناطق المتطابقة بين الصورتين لتسهيل قراءة النتيجة.
-compose : اختيار أسلوب دمج وتركيب الطبقات الرسومية أثناء إنتاج المخرجات المرئية.

التحقق من إصدار أداة compare ومعلومات البناء

2. توليد صور تجريبية واستخراج الفروقات البصرية (Visual Diff)

لإجراء مقارنة واقعية، ننشئ أولاً الصورة الأساسية base.png وهي عبارة عن خلفية بيضاء يتوسطها مربع أحمر:

توليد الصورة المرجعية base.png بمربع أحمر

بعد ذلك، نُحدث تعديلاً رسوميًا على النسخة الأصلية بإضافة مربع أزرق فوقها، ثم نحفظ النتيجة في ملف جديد باسم modified.png:

إضافة مربع أزرق وإنشاء ملف modified.png

الآن نقوم باستدعاء الأمر compare للمقارنة بين ملف base.png ونظيره modified.png، مما يسفر عن توليد ملف الخريطة diff.png الذي يبرز التعديلات الحاصلة؛ حيث يُظهر السلوك الافتراضي العناصر المتطابقة بشفافية باهتة بينما تتلون النقاط المختلفة باللون الأحمر الزاهي:

استخراج الفروقات البصرية وإنتاج ملف diff.png

للتأكد من إنشاء الملفات في مسار العمل ومراجعة أحجامها التخزينية، ننفذ الأمر ls -lh base.png modified.png diff.png:

معاينة الملفات الناتجة وأحجامها عبر الطرفية

3. قياس معدلات الخطأ النقطي عدديًا باستخدام الخيار -metric

عند بناء مسارات التحقق الآلي، قد لا نحتاج لتصدير صورة جديدة وإنما يكفينا حساب إجمالي عدد البكسلات المتغيرة بصيغة رقمية فورية عبر الأمر compare -metric AE base.png modified.png null: 2>&1.
يعتمد معيار الخطأ المطلق AE (Absolute Error) على إحصاء عدد النقاط غير المتطابقة لونيًا، وعند توجيه المخرجات نحو null: يتفادى النظام كتابة أي ملفات على القرص الصلب ويعرض النتيجة الرقمية مباشرة عبر قناة الأخطاء القياسية (stderr):

حساب عدد البكسلات المختلفة باستخدام مقياس AE

أما للحصول على تحليل إحصائي أدق يصف التشتت اللوني الإجمالي، فنلجأ إلى الأمر compare -metric RMSE base.png modified.png null: 2>&1.
يقيس معيار جذر متوسط مربع الخطأ RMSE (Root Mean Squared Error) الانحرافات اللونية بصورة معيارية نسبية مقارنة بكافة بكسلات الصورة، وهو الخيار الأمثل لوضع عتبات قبول ورفض (Thresholds) دقيقة داخل سكربتات فحص الجودة التلقائية:

قياس نسبة الانحراف اللوني الإحصائي عبر مقياس RMSE

4. ضبط نسبة التسامح مع التشويش (-fuzz) وتخصيص ألوان التمييز

لتجاوز التشوهات الناتجة عن ضغط الصور أو التدرجات اللونية غير المحسوسة، نطبق هامش تسامح مقداره 5% عبر الأمر compare -fuzz 5% base.png modified.png diff_fuzz.png.
تُساعد هذه المعاملة -fuzz في تجاهل الفوارق البسيطة التي تعجز العين البشرية عن ملاحظتها، مما يحصر ملف المخرجات diff_fuzz.png في التغييرات الجوهرية المؤثرة فقط:

مقارنة الصورتين مع تفعيل هامش التسامح fuzz بنسبة 5 بالمئة

ولرفع كفاءة الفحص البصري وتحسين وضوح النتائج للمراجعين، يمكننا تخصيص لوحة الألوان بواسطة الأمر compare -highlight-color magenta -lowlight-color gray base.png modified.png diff_custom.png.
يُحدد الخيار -highlight-color اللون الأرجواني الفاقع (magenta) لتمييز مواضع الاختلاف، بينما يجعل الخيار -lowlight-color الخلفية المشتركة باللون الرمادي (gray)، مما ينتج ملف diff_custom.png عالي الوضوح وسهل القراءة:

تخصيص ألوان التمييز البصري لمناطق الاختلاف والتطابق

للتحقق من اكتمال عمليات المعالجة واستعراض تفاصيل ملفات المخرجات الجديدة، ننفذ الأمر ls -lh diff_fuzz.png diff_custom.png:

فحص أبعاد وتفاصيل ملفات diff_fuzz وdiff_custom

استعرضنا في هذا الدليل العملي أساليب توظيف أداة compare ضمن نظام أوبونتو لتحليل الفروقات الصورية بصريًا وحسابيًا لدمجها في بيئات الأتمتة.
يمكنكم الآن الاستفادة من هذه المعايير والخيارات البرمجية لتطوير آليات تدقيق رسومي متينة وموثوقة ضمن مشاريعكم التقنية.