تقوم العمليات المورفولوجية بتعديل الصور بناءً على بنية وترتيب وحدات البكسل. يقومون بتطبيق kernel على صورة إدخال لتغيير ميزاتها اعتمادًا على ترتيب وحدات البكسل المجاورة. العمليات المورفولوجية مثل التآكل والتمدد هي تقنيات في معالجة الصور خاصة للصور الثنائية أو ذات التدرج الرمادي. فهي تساعد في تحليل الأشكال وتنظيف الضوضاء وتحسين حدود الكائنات.
منشئ في جافا
تآكل
التآكل في معالجة الصور هو عملية مورفولوجية تعمل على تقليص حدود الكائنات في الصورة وتخفيفها عن طريق إزالة وحدات البكسل الموجودة على حواف الكائن بشكل فعال مما يجعل الكائنات أصغر حجمًا وإزالة التشويش الأبيض الصغير.
غاية
- يؤدي إلى تقليص أو تآكل حدود الكائنات الأمامية (عادةً وحدات بكسل بيضاء).
- يزيل الضوضاء البيضاء الدقيقة ويفصل بين الأشياء التي يتم لمسها.
كيف يعمل
- تنزلق النواة (عادةً مصفوفة 3 × 3 5 × 5 أو 7 × 7) عبر الصورة.
- يظل البكسل أبيض (1) فقط إذا كانت جميع وحدات البكسل الموجودة أسفل النواة بيضاء؛ وإلا فإنه يصبح أسود (0).
- تعمل هذه العملية على تقليل حجم الكائن وتآكل الحواف.
تمدد
التوسيع هو عملية مورفولوجية تعمل على توسيع حدود الكائنات في الصورة عن طريق إضافة وحدات بكسل إلى حواف الكائن مما يجعل الكائنات تبدو أكبر وملء الفجوات أو الثقوب الصغيرة.
غاية:
- يوسع حدود الكائنات الأمامية.
- إبراز أو تكبير الميزات وملء الفجوات الصغيرة.
كيف يعمل:
- النواة ملتوية بالمثل فوق الصورة.
- يتم ضبط البيكسل على اللون الأبيض (1) إذا واحد على الأقل من البكسلات المقابلة تحت النواة بيضاء.
- ونتيجة لذلك تنمو المناطق البيضاء مندمجة ثقوبًا صغيرة أو تجمع الأجزاء المكسورة معًا.
تنفيذ التآكل والتمدد
دعونا ننفذ التآكل والتمدد باستخدام OpenCV في بايثون
الخطوة 1: استيراد المكتبات
سنقوم باستيراد المكتبات اللازمة
- السيرة الذاتية2 : مكتبة OpenCV لمعالجة الصور.
- numpy : للعمليات العددية وإنشاء النوى.
- matplotlib.pyplot : لعرض الصور في دفاتر الملاحظات.
الخطوة 2: تحميل صورة الإدخال وتحديد عناصر الهيكلة (النواة)
تحدد النواة المنطقة التي سيتم إجراء العملية فيها. الخيارات الشائعة هي المستطيلات أو الأقراص.
Pythonيمكن تنزيل الصورة المستعملة من هنا .
img = cv2.imread('input.webp' 0) plt.imshow(img cmap='gray') plt.title('Original Image') plt.axis('off') plt.show() kernel = np.ones((5 5) np.uint8)
الإخراج:
إبداعيالخطوة 3: تطبيق التآكل
يعمل التآكل عن طريق تحريك النواة عبر الصورة. يظل البيكسل أبيض (255) فقط إذا كانت جميع البيكسلات الموجودة أسفل النواة بيضاء وإلا فإنها تصبح سوداء (0). وهذا يقلل من حدود الكائنات ويزيل الضوضاء البيضاء الصغيرة.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
الإخراج:
بعد التآكلالخطوة 4: تطبيق التمدد
يؤدي التمدد إلى تحريك النواة عبر الصورة ويصبح البكسل أبيض إذا كان هناك بكسل واحد على الأقل أسفل النواة أبيض. يؤدي ذلك إلى زيادة سماكة المناطق أو الأجسام البيضاء وملء الثقوب الصغيرة.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
الإخراج:
ج
بعد التمددالتطبيقات
تآكل
- إزالة الضوضاء البيضاء المعزولة من الصورة.
- فصل الأشياء التي تم ضمها أو لمسها.
- العثور على حدود الكائن عن طريق تقليص حجم الكائن.
تمدد
- ملء الثقوب أو الفجوات الصغيرة في الأشياء.
- ربط الأجزاء المكسورة أو المنفصلة من نفس الكائن.
- يستخدم بعد التآكل (كجزء من عملية "الفتح") لاستعادة حجم الكائن مع إزالة الضوضاء.
يعد التآكل والتمدد من العمليات المورفولوجية الأساسية في معالجة الصور التي تسمح لنا بتحسين الأشكال النظيفة والتلاعب بها داخل الصور. باستخدام عناصر هيكلة بسيطة، تساعد هذه التقنيات على إزالة الضوضاء وفصل الكائنات أو توصيلها وتحسين ميزات الصورة مما يجعلها أدوات أساسية للمعالجة المسبقة والتحليل الفعال في مهام رؤية الكمبيوتر باستخدام OpenCV وPython.
إنشاء اختبار