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

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

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

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

الآن نقوم باستدعاء الأمر compare للمقارنة بين ملف base.png ونظيره modified.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):

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

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

ولرفع كفاءة الفحص البصري وتحسين وضوح النتائج للمراجعين، يمكننا تخصيص لوحة الألوان بواسطة الأمر 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:

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