يعد تنظيف الصور أسلوبًا قيمًا ، سواء كان ذلك لمزيد من التحليل أو لمجرد جعل صورك تبدو في أفضل حالاتها.

يعد تحسين الصور أداة أساسية لرؤية الكمبيوتر وتطبيقات تحرير الصور. يهدف إلى تحسين جودة الصور.

من خلال تحسين جودة الصورة ، يمكن تحسين دقة وموثوقية تحليل الصور وتقنيات المعالجة بشكل كبير. هذا مهم بشكل خاص في تطبيقات اكتشاف الكائنات والتعرف عليها وتقسيمها وتتبعها.

يمكن أن يساعد تحسين الصورة عندما تكون عوامل مثل ظروف الإضاءة المنخفضة ، أو ضوضاء المستشعر ، أو ضبابية الحركة ، أو أخطاء الإرسال قد أضعفت جودة الصورة.

تهيئة بيئتك

ابدأ ب إعداد بيئة بايثون، ثم قم بتشغيل الأمر الطرفي التالي لتثبيت مكتبة OpenCV. ستستخدم OpenCV لتحميل الصورة الأولية ومعالجتها وحفظ الصورة النهائية المحسّنة.

نقطة تثبيت opencv-python

ستستخدم Matplotlib لعرض الصورتين. قم بتثبيته باستخدام هذا الأمر:

نقطة تثبيت matplotlib

أخيرًا ، قم بتثبيت NumPy ، الذي ستقوم به تستخدم للعمليات العددية بما في ذلك إنشاء جداول بحث لتصحيح جاما وتحديد النواة لتوضيح الصورة:

نقطة تثبيت numpy

بمجرد تثبيت هذه المكتبات في بيئتك ، تكون جاهزًا لبدء الترميز.

كود المصدر الكامل لهذا العرض التوضيحي متاح في ملف مستودع جيثب.

instagram viewer

استيراد المكتبات اللازمة

قم باستيراد المكتبات التي قمت بتثبيتها مسبقًا في بيئتك:

يستورد السيرة الذاتية 2
يستورد matplotlib.pyplot مثل PLT
يستورد حزر مثل np

لاحظ أنه يجب عليك استيراد OpenCV كملف السيرة الذاتية 2. هذه ممارسة قياسية تهدف إلى ضمان توافق الكود وسهولة الفهم للمطورين الآخرين.

تحميل وعرض الصورة الأصلية

ابدأ بتحميل الصورة الأصلية باستخدام ملف cv2.imread وظيفة. هذه هي صورة الإدخال التي سينفذ عليها برنامجك تقنيات التحسين. ثم اعرضه باستخدام وظائف Matplotlib المناسبة:

الصورة = cv2.imread ("example.jpg")
plt.imshow (cv2.cvtColor (صورة ، cv2.COLOR_BGR2RGB))
plt.title ("الصورة الأصلية")
plt.show ()

سيساعدك عرض الصورة الأصلية في مقارنة نتائج البرنامج لاحقًا:

الصورة أعلاه ستكون مدخلات البرنامج.

تقليل التشويش في الصورة

تقليل الضوضاء هي تقنية تهدف إلى تقليل التشويش - التشوهات العشوائية - في الصورة. ينتج عن هذا إخراج أكثر سلاسة. يوفر OpenCV ملف fastNl يعني التنحيف الملون وظيفة لهذا الغرض. يستخدم خوارزمية غير محلية لإزالة التشويش مع الحفاظ على تفاصيل الصورة.

# تطبيق تحسينات الصورة
# قم بإلغاء تشويش الصورة
denoised_image = cv2.fastNlMeansDenoisingColored (صورة ، لا أحد, 10, 10, 7, 21)

ال fastNl يعني التنحيف الملون تأخذ الوظيفة العديد من المعلمات ، بما في ذلك الصورة وقوة الفلتر وحجم نافذة القالب وحجم نافذة البحث. يمكنك تجربة قيم مختلفة للحصول على النتائج المرجوة.

تمدد التباين لتحسين رؤية التفاصيل

يُعرف التمدد المتباين أيضًا بالتطبيع. يمتد قيم الشدة لتشمل نطاقًا معينًا. هذا بدوره يحسن رؤية التفاصيل في الصورة.

يمكنك تطبيق تمديد التباين على الصورة منزوعة الضوضاء باستخدام OpenCV تطبيع وظيفة:

# قم بإجراء تمدد التباين
Contra_stretched_image = cv2.normalize (denoised_image، لا أحد, 255, 0، cv2.NORM_MINMAX، cv2.CV_8UC1)

كيفية زيادة حدة الصورة

تعمل زيادة حدة الصورة على تحسين حواف وتفاصيل الصورة ، مما يساعد على تحسين وضوح الصورة.

# شحذ الصورة
kernel = np.array ([[0, -1, 0], [-1, 5, -1], [0, -1, 0]] ، np.float32)
sharpened_image = cv2.filter2D (تباين_ امتداد_صورة ، -1، kernel = kernel)

ينشئ الكود أعلاه مصفوفة النواة التي تؤكد الحواف والتفاصيل في الصورة. ال cv2.filter2D تقوم الوظيفة بتطبيق النواة على الصورة الممتدة على التباين ، مما يؤدي إلى شحذها نتيجة لذلك.

اضبط السطوع لتحسين التعرض

يتحكم ضبط السطوع في السطوع الكلي للصورة. يساعد في جعل الصورة جذابة بصريًا وذات عرض جيد.

# تعديل السطوع
Brightness_image = cv2.convertScaleAbs (sharpened_image، alpha =1، بيتا =5)

ال cv2.convertScaleAbs وظيفة تضبط سطوع الصورة. ال ألفا تتحكم المعلمة في التباين ، بينما يتحكم ملف بيتا تتحكم المعلمة في السطوع. زيادة بيتا قيمة تعزز سطوع الصورة.

قم بتطبيق تصحيح جاما لتفتيح الصورة

يمكن أن تظهر الصورة ساطعة للغاية بعد تقنية ضبط السطوع. يضبط تصحيح جاما السطوع والتباين الكليين للصورة. يقوم بتصحيح الصور التي تظهر مظلمة جدًا أو ساطعة جدًا.

# تصحيح اشعة جاما
جاما = 1.5
lookup_table = np.array ([((i / 255.0) ** جاما) * 255ل أنا في np.arange (0, 256)]). astype ("uint8")
gamma_corrected_image = cv2.LUT (السطوع_صورة ، lookup_table)

يُنشئ مقتطف الشفرة أعلاه جدول بحث يطبق تحويل تصحيح جاما على الصورة المعدلة للسطوع. ال جاما القيمة تتحكم في التعديل. استخدم القيم الأكبر من 1 لجعل الصورة أغمق ، والقيم الأقل من 1 لجعلها أكثر سطوعًا.

حفظ وعرض الصورة المحسنة النهائية

بمجرد تطبيق تقنيات التحسين المذكورة أعلاه ، احفظ الصورة النهائية التي تمت معالجتها في ملف.

# حفظ الصورة النهائية
cv2.imwrite ("final_image.jpg"، gamma_corrected_image)

ثم اعرض إخراج البرنامج باستخدام Matplotlib.

# عرض الصورة النهائية المحسنة
plt.imshow (cv2.cvtColor (gamma_corrected_image، cv2.COLOR_BGR2RGB))
plt.title ("الصورة النهائية المحسنة")
plt.show ()

الصورة النهائية المحسّنة هي كما يلي:

مستقبل تحسين الصورة

مستقبل تحسين الصورة في مجال الذكاء الاصطناعي. يتم تدريب خوارزميات التعلم الآلي على أداء تقنيات تحسين الصورة تلقائيًا على الصور.

تعالج هذه البرامج كل صورة على حدة ، لذا فهي تطبق قيمًا مختلفة من الأساليب على صور مختلفة.