Morphologische Operationen modifizieren Bilder basierend auf der Struktur und Anordnung der Pixel. Sie wenden einen Kernel auf ein Eingabebild an, um dessen Merkmale abhängig von der Anordnung benachbarter Pixel zu ändern. Morphologische Operationen wie Erosion und Dilatation sind Techniken in der Bildverarbeitung, insbesondere für Binär- oder Graustufenbilder. Sie helfen bei der Analyse von Formen, bereinigen Rauschen und verfeinern Objektgrenzen.
Erosion
Erosion bei der Bildverarbeitung ist ein morphologischer Vorgang, der die Grenzen von Objekten in einem Bild verkleinert und verdünnt, indem Pixel an Objektkanten entfernt werden, wodurch Objekte effektiv kleiner werden und kleines weißes Rauschen entfernt wird.
Zweck
- Verkleinert oder erodiert die Grenzen von Vordergrundobjekten (normalerweise weiße Pixel).
- Entfernt feines weißes Rauschen und trennt sich berührende Objekte.
Wie es funktioniert
- Ein Kernel (normalerweise eine 3×3-, 5×5- oder 7×7-Matrix aus Einsen) gleitet über das Bild.
- Ein Pixel bleibt nur dann weiß (1), wenn alle Pixel unter dem Kernel weiß sind. andernfalls wird es schwarz (0).
- Dieser Prozess reduziert die Objektgröße und erodiert Kanten.
Erweiterung
Dilatation ist eine morphologische Operation, die die Grenzen von Objekten in einem Bild erweitert, indem Pixel an Objektkanten hinzugefügt werden, wodurch Objekte größer erscheinen und kleine Lücken oder Löcher gefüllt werden.
Zweck:
- Erweitert die Grenzen der Vordergrundobjekte.
- Betont oder vergrößert Gesichtszüge und füllt kleine Lücken.
So funktioniert es:
- Der Kernel wird auf ähnliche Weise über das Bild gefaltet.
- Ein Pixel wird auf Weiß (1) gesetzt, wenn mindestens einer der entsprechenden Pixel unter dem Kernel ist weiß.
- Dadurch wachsen die weißen Bereiche und verschmelzen kleine Löcher oder verbinden gebrochene Teile miteinander.
Implementierung von Erosion und Dilatation
Lassen Sie uns Erosion und Dilatation mit OpenCV in Python implementieren
Schritt 1: Bibliotheken importieren
Wir importieren die notwendigen Bibliotheken
- Lebenslauf 2 : OpenCV-Bibliothek zur Bildverarbeitung.
- Numpy : Für numerische Operationen und zum Erstellen von Kerneln.
- matplotlib.pyplot : Zum Anzeigen von Bildern in Notizbüchern.
Schritt 2: Eingabebild laden und Strukturierungselemente (Kernel) definieren
Der Kernel definiert die Nachbarschaft für den Vorgang. Übliche Optionen sind Rechtecke oder Scheiben.
PythonDas verwendete Bild kann heruntergeladen werden von 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)
Ausgabe:
OriginalSchritt 3: Erosion anwenden
Erosion funktioniert, indem der Kernel über das Bild gleitet. Ein Pixel bleibt nur dann weiß (255), wenn alle Pixel unter dem Kernel weiß sind, andernfalls wird es schwarz (0). Dadurch werden Objektgrenzen reduziert und kleines weißes Rauschen entfernt.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Ausgabe:
Nach der ErosionSchritt 4: Dilatation anwenden
Durch die Dilatation wird der Kernel über das Bild verschoben und ein Pixel wird weiß, wenn mindestens ein Pixel unter dem Kernel weiß ist. Dadurch werden weiße Bereiche oder Objekte dicker und kleine Löcher gefüllt.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Ausgabe:
Nach der DilatationAnwendungen
Erosion
- Entfernen von isoliertem weißem Rauschen aus einem Bild.
- Trennen von verbundenen oder sich berührenden Objekten.
- Finden von Objektgrenzen durch Verkleinern der Objektgröße.
Erweiterung
- Füllen kleiner Löcher oder Lücken in Objekten.
- Zusammenfügen gebrochener oder nicht verbundener Teile desselben Objekts.
- Wird nach der Erosion (als Teil des Öffnungsvorgangs) verwendet, um die Objektgröße wiederherzustellen und gleichzeitig das Rauschen zu beseitigen.
Erosion und Dilatation sind grundlegende morphologische Operationen in der Bildverarbeitung, die es uns ermöglichen, klare Formen innerhalb von Bildern zu verfeinern und zu manipulieren. Durch die Verwendung einfacher Strukturierungselemente helfen diese Techniken dabei, Rauschen zu entfernen, Objekte zu trennen oder zu verbinden und Bildfunktionen zu verbessern, was sie zu unverzichtbaren Werkzeugen für eine effektive Vorverarbeitung und Analyse bei Computer-Vision-Aufgaben mit OpenCV und Python macht.
Quiz erstellen