Morfologische bewerkingen wijzigen afbeeldingen op basis van de structuur en rangschikking van pixels. Ze passen kernel toe op een invoerafbeelding om de kenmerken ervan te veranderen, afhankelijk van de rangschikking van aangrenzende pixels. Morfologische bewerkingen zoals erosie en dilatatie zijn technieken bij beeldverwerking, vooral voor binaire of grijswaardenafbeeldingen. Ze helpen bij het analyseren van vormen, het opschonen van ruis en het verfijnen van objectgrenzen.
Erosie
Erosie bij beeldverwerking is een morfologische bewerking die de grenzen van objecten in een afbeelding verkleint en verdunt door pixels aan de objectranden te verwijderen, waardoor objecten effectief kleiner worden en kleine witte ruis wordt verwijderd.
Doel
- Verkleint of erodeert de grenzen van objecten op de voorgrond (meestal witte pixels).
- Verwijdert fijne witte ruis en scheidt objecten die elkaar raken.
Hoe het werkt
- Een kernel (meestal een 3×3, 5×5 of 7×7 matrix van enen) glijdt over het beeld.
- Een pixel blijft alleen wit (1) als alle pixels onder de kernel wit zijn; anders wordt het zwart (0).
- Dit proces verkleint de objectgrootte en erodeert randen.
Uitzetting
Dilatatie is een morfologische bewerking waarbij de grenzen van objecten in een afbeelding worden vergroot door pixels aan de objectranden toe te voegen, waardoor objecten groter lijken en kleine gaten of gaten worden opgevuld.
Doel:
- Vergroot de grenzen van de voorgrondobjecten.
- Accentueert of vergroot gelaatstrekken en vult kleine gaten op.
Hoe het werkt:
- De kernel is op soortgelijke wijze over de afbeelding gedraaid.
- Een pixel wordt ingesteld op wit (1) als tenminste één van de overeenkomstige pixels onder de kernel is wit.
- Als gevolg hiervan groeien de witte gebieden en voegen ze kleine gaatjes samen of verbinden ze gebroken delen met elkaar.
Implementatie van erosie en dilatatie
Laten we erosie en dilatatie implementeren met OpenCV in Python
Stap 1: Bibliotheken importeren
Wij importeren de benodigde bibliotheken
- cv2 : OpenCV-bibliotheek voor beeldverwerking.
- numpig : Voor numerieke bewerkingen en om kernels te maken.
- matplotlib.pyplot : Om afbeeldingen in notitieboekjes weer te geven.
Stap 2: Laad de invoerafbeelding en definieer de structurerende elementen (kernel)
De kernel definieert de buurt voor de bewerking. Veel voorkomende keuzes zijn rechthoeken of schijven.
PythonGebruikte afbeelding kan worden gedownload van hier .
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)
Uitgang:
OrigineelStap 3: Pas erosie toe
Erosie werkt door de kernel over het beeld te schuiven. Een pixel blijft alleen wit (255) als alle pixels onder de kernel wit zijn, anders wordt hij zwart (0). Dit verkleint objectgrenzen en verwijdert kleine witte ruis.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Uitgang:
Na erosieStap 4: Dilatatie toepassen
Dilatatie schuift de kernel over het beeld en een pixel wordt wit als ten minste één pixel onder de kernel wit is. Hierdoor worden witte gebieden of voorwerpen dikker en worden kleine gaatjes opgevuld.
subtekenreeks javaPython
img_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Uitgang:
Na dilatatieToepassingen
Erosie
- Geïsoleerde witte ruis uit een afbeelding verwijderen.
- Objecten scheiden die met elkaar verbonden zijn of elkaar raken.
- Objectgrenzen vinden door de objectgrootte te verkleinen.
Uitzetting
- Het opvullen van kleine gaatjes of gaten in voorwerpen.
- Het verbinden van kapotte of losgekoppelde delen van hetzelfde object.
- Wordt gebruikt na erosie (als onderdeel van de 'openings'-operatie) om de objectgrootte te herstellen terwijl ruis wordt verwijderd.
Erosie en dilatatie zijn fundamentele morfologische bewerkingen bij beeldverwerking waarmee we zuivere vormen kunnen verfijnen en vormen in afbeeldingen kunnen manipuleren. Door eenvoudige structurerende elementen te gebruiken, helpen deze technieken ruis te verwijderen, objecten te scheiden of met elkaar te verbinden en beeldkenmerken te verbeteren, waardoor ze essentiële hulpmiddelen worden voor effectieve voorverwerking en analyse bij computervisietaken met OpenCV en Python.
Quiz maken