Was ist morphologische Transformation in der Bildverarbeitung?

Morphologische Transformationen in der Bildverarbeitung

Rating: 4.85 (3975 votes)

Morphologische Transformationen sind grundlegende Operationen in der digitalen Bildverarbeitung, die sich auf die Form oder Struktur von Objekten in einem Bild konzentrieren. Sie werden typischerweise auf binäre Bilder angewendet, können aber auch auf Graustufenbilder erweitert werden. Diese Operationen erfordern zwei Eingaben: das Originalbild und ein sogenanntes Strukturelement oder Kernel, das die Art der Operation bestimmt.

Was ist morphologische Transformation in der Bildverarbeitung?
Morphologische Transformationen sind einfache Operationen, die auf der Bildform basieren . Sie werden normalerweise an Binärbildern durchgeführt. Sie benötigen zwei Eingaben: eine ist unser Originalbild, die zweite wird als Strukturelement oder Kernel bezeichnet und bestimmt die Art der Operation.

Das Konzept der morphologischen Verarbeitung basiert darauf, ein kleines Strukturelement über das Bild zu bewegen und lokale Operationen durchzuführen. Diese Operationen können verwendet werden, um Unvollkommenheiten zu entfernen, die während der Bildsegmentierung entstanden sind, oder um Informationen über die Form und Struktur von Bildobjekten zu gewinnen.

Das Strukturelement (Kernel)

Das Strukturelement (SE) ist das Herzstück morphologischer Operationen. Es ist eine kleine Form oder Vorlage, die über das Bild verschoben wird. Man kann es sich als eine Art Maske vorstellen, die auf verschiedene Bereiche des Bildes gelegt wird. Das SE kann verschiedene Formen und Größen haben, wie z. B. rechteckig, elliptisch oder kreuzförmig. Die Wahl des Strukturelements ist entscheidend, da sie die Ergebnisse der Operation stark beeinflusst.

Ein Strukturelement hat einen Ursprung, einen Referenzpunkt, der bestimmt, wie das Element positioniert wird. Wenn das Strukturelement mit seinem Ursprung an einem bestimmten Pixel (x, y) positioniert wird, vergleicht die morphologische Operation die Pixel im Bild, die unter das Strukturelement fallen, mit der Form des Strukturelements.

In Bibliotheken wie OpenCV gibt es Funktionen wie cv.getStructuringElement(), um Strukturelemente verschiedener Formen und Größen einfach zu erstellen, anstatt sie manuell mit Arrays wie z. B. NumPy-Arrays zu definieren.

Grundlegende Morphologische Operationen: Erosion und Dilatation

Die zwei grundlegendsten morphologischen Operatoren sind Erosion und Dilatation. Alle anderen komplexeren morphologischen Operationen basieren auf Kombinationen dieser beiden.

Erosion

Die Grundidee der Erosion ist ähnlich wie bei Bodenerosion: Sie nagt an den Grenzen des Vordergrundobjekts. Bei binären Bildern, bei denen Vordergrundobjekte typischerweise weiß (Wert 1) und der Hintergrund schwarz (Wert 0) sind, funktioniert die Erosion wie folgt:

Das Strukturelement gleitet über das Bild. Ein Pixel im Originalbild wird nur dann im Ausgabebild auf 1 gesetzt, wenn *alle* Pixel unter dem Strukturelement (wenn sein Ursprung auf diesem Pixel liegt) ebenfalls den Wert 1 haben. Andernfalls wird das Pixel auf 0 gesetzt (es wird "erodiert").

Das Ergebnis der Erosion ist, dass die Dicke oder Größe des Vordergrundobjekts abnimmt. Weiße Bereiche im Bild schrumpfen. Die Erosion ist nützlich für:

  • Entfernen von kleinem weißem Rauschen.
  • Trennen von zwei verbundenen Objekten.
  • Reduzieren der Größe von Objekten.

Für Graustufenbilder kann die Erosion durch die Berechnung des lokalen Minimums unter dem Strukturelement an jedem Pixel implementiert werden. Das Ausgabepixel erhält den minimalen Intensitätswert aller Pixel im Eingangsbild, die vom Strukturelement überdeckt werden.

In OpenCV wird die Erosion mit der Funktion cv.erode() durchgeführt.

Dilatation

Die Dilatation ist das Gegenteil der Erosion. Hier wird ein Pixel im Ausgabebild auf 1 gesetzt, wenn *mindestens ein* Pixel unter dem Strukturelement (wenn sein Ursprung auf diesem Pixel liegt) im Originalbild den Wert 1 hat. Wenn das Strukturelement ein Objekt "trifft" (hitting), wird das entsprechende Pixel auf 1 gesetzt.

Dies führt dazu, dass der weiße Bereich im Bild zunimmt oder die Größe des Vordergrundobjekts größer wird. Die Dilatation "repariert" Brüche oder kleine Lücken in Objekten.

Die Dilatation ist nützlich für:

  • Vergrößern von Objekten.
  • Verbinden von unterbrochenen Teilen eines Objekts.
  • Füllen kleiner Löcher innerhalb von Objekten.

Oft wird nach einer Erosion eine Dilatation durchgeführt. Die Erosion entfernt Rauschen, lässt aber auch das Objekt schrumpfen. Die anschließende Dilatation vergrößert das Objekt wieder auf seine ungefähre ursprüngliche Größe, ohne dass das entfernte Rauschen zurückkehrt.

Für Graustufenbilder kann die Dilatation durch die Berechnung des lokalen Maximums unter dem Strukturelement an jedem Pixel implementiert werden. Das Ausgabepixel erhält den maximalen Intensitätswert aller Pixel im Eingangsbild, die vom Strukturelement überdeckt werden.

In OpenCV wird die Dilatation mit der Funktion cv.dilate() durchgeführt.

Welche zwei Arten morphologischer Operationen gibt es?
Die grundlegenden morphologischen Operationen sind Dilatation und Erosion , die die Expansions- bzw. Schrumpfungseigenschaften von Bildern unterstützen. Diese Operationen verwenden eine kleine Matrixmaske, das sogenannte Strukturelement.

Zusammengesetzte Morphologische Operationen

Durch die Kombination von Erosion und Dilatation entstehen weitere nützliche Operationen.

Opening (Öffnung)

Das Opening ist definiert als eine Erosion, gefolgt von einer Dilatation, unter Verwendung desselben Strukturelements für beide Schritte. Mathematisch kann es als (Bild ⊖ SE) ⊕ SE ausgedrückt werden (wobei ⊖ Erosion und ⊕ Dilatation bezeichnet).

Opening ist nützlich, um kleines Rauschen (helle Pixel auf dunklem Hintergrund bei binären Bildern) zu entfernen und dünne Verbindungen zwischen Objekten zu trennen, ohne die Form der größeren Objekte signifikant zu verändern.

In OpenCV wird Opening mit cv.morphologyEx() unter Verwendung des Flags cv.MORPH_OPEN durchgeführt.

Closing (Schließung)

Das Closing ist das Gegenteil von Opening: eine Dilatation, gefolgt von einer Erosion, unter Verwendung desselben Strukturelements für beide Schritte. Mathematisch kann es als (Bild ⊕ SE) ⊖ SE ausgedrückt werden.

Closing ist nützlich, um kleine Löcher innerhalb von Vordergrundobjekten zu schließen oder kleine schwarze Punkte auf Objekten zu entfernen. Es kann auch verwendet werden, um benachbarte Objekte zu verbinden, wenn die Lücken zwischen ihnen kleiner sind als das Strukturelement.

In OpenCV wird Closing mit cv.morphologyEx() unter Verwendung des Flags cv.MORPH_CLOSE durchgeführt.

Morphologischer Gradient

Der morphologische Gradient ist die Differenz zwischen der Dilatation und der Erosion eines Bildes. Das Ergebnis sieht oft aus wie die Umrisse oder die Kontur des Objekts.

Gradient = Dilatation - Erosion

In OpenCV wird der morphologische Gradient mit cv.morphologyEx() unter Verwendung des Flags cv.MORPH_GRADIENT durchgeführt.

Top Hat

Top Hat ist die Differenz zwischen dem Eingabebild und dem Opening des Bildes.

Top Hat = Eingabebild - Opening

Dies hebt helle Strukturen hervor, die kleiner sind als das Strukturelement und auf einem dunkleren Hintergrund liegen. Es kann nützlich sein, um kleine helle Objekte oder Merkmale zu finden.

In OpenCV wird Top Hat mit cv.morphologyEx() unter Verwendung des Flags cv.MORPH_TOPHAT durchgeführt.

Black Hat

Black Hat ist die Differenz zwischen dem Closing des Eingabebildes und dem Eingabebild.

Was sind die morphologischen Operationen der Bildsegmentierung?
Morphologische Operationen werden häufig bei der Bildsegmentierung eingesetzt , um Merkmale und Objekte aus einem Bild zu extrahieren oder das Bild zu bereinigen bzw. zu glätten . Beispielsweise kann Erosion dazu verwendet werden, kleine Details aus einem Bild zu entfernen oder auszudünnen, während Dilatation dazu verwendet werden kann, Bereiche in einem Bild zu vergrößern oder auszudehnen.

Black Hat = Closing - Eingabebild

Dies hebt dunkle Strukturen hervor, die kleiner sind als das Strukturelement und auf einem helleren Hintergrund liegen. Es kann nützlich sein, um kleine dunkle Löcher oder Merkmale zu finden.

In OpenCV wird Black Hat mit cv.morphologyEx() unter Verwendung des Flags cv.MORPH_BLACKHAT durchgeführt.

Anwendungen Morphologischer Operationen

Morphologische Operationen sind vielseitig einsetzbar:

  • Rauschunterdrückung: Opening und Closing sind effektiv beim Entfernen von hellem bzw. dunklem Rauschen. Eine Kombination aus Opening und Closing (Open-Close) oder Closing und Opening (Close-Open) kann verwendet werden, um sowohl helles als auch dunkles Rauschen zu filtern.
  • Objektisolierung und -trennung: Erosion kann verwendet werden, um dünne Verbindungen zwischen Objekten zu trennen, während Dilatation verwendet werden kann, um Lücken zu schließen und Objekte zu verbinden. Opening trennt Objekte, Closing verbindet sie.
  • Lochfüllung und Kantendetektion: Closing kann Löcher in Objekten füllen. Der morphologische Gradient kann verwendet werden, um die Konturen von Objekten hervorzuheben.
  • Regionenfüllung: Morphologische Algorithmen können verwendet werden, um eine Region innerhalb einer definierten Grenze zu füllen, beginnend von einem Pixel innerhalb dieser Grenze.
  • Extraktion von Skeletten/Mittellinien: Obwohl in den bereitgestellten Informationen nicht detailliert beschrieben, ist die Skelettierung eine weitere wichtige morphologische Operation.

Theoretische Grundlagen und Eigenschaften

Die mathematische Grundlage der Morphologie basiert auf der Mengenlehre, insbesondere für binäre Bilder. Ein binäres Bild wird als eine Menge von Vordergrundpixeln betrachtet. Morphologische Operationen wie Erosion und Dilatation können als Transformationen dieser Mengen unter Verwendung des Strukturelements als "Sonde" definiert werden.

Für binäre Bilder kann man die Konzepte des "Passens" (fitting) und "Treffens" (hitting) eines Strukturelements im Bildbereich betrachten.

  • Passen (Fitting): Das SE passt an einer Stelle, wenn alle seine Vordergrundpixel mit Vordergrundpixeln im Bild übereinstimmen. Erosion kann so definiert werden: Ein Pixel wird Vordergrund, wenn das SE, zentriert an diesem Pixel, vollständig in der Vordergrundmenge des Bildes enthalten ist.
  • Treffen (Hitting): Das SE trifft an einer Stelle, wenn mindestens eines seiner Vordergrundpixel mit einem Vordergrundpixel im Bild übereinstimmt. Dilatation kann so definiert werden: Ein Pixel wird Vordergrund, wenn das SE, zentriert an diesem Pixel, mindestens ein Vordergrundpixel im Bild trifft.

Für Graustufenbilder werden die Operationen auf der Grundlage von Minimums- und Maximumsoperationen definiert, wie bereits erwähnt. Die Erosion eines Graustufenbildes mit einem flachen SE entspricht dem lokalen Minimumfilter, während die Dilatation dem lokalen Maximumfilter entspricht.

Wichtige Eigenschaften morphologischer Operatoren:

  • Dualität: Erosion und Dilatation sind dual zueinander bezüglich Komplementierung und Reflexion. Das Komplement einer Erosion ist die Dilatation des Komplements mit dem reflektierten SE, und umgekehrt. Auch Opening und Closing sind dual zueinander.
  • Translationsinvarianz: Die Operationen reagieren nicht auf die Position des Objekts im Bild.
  • Zunehmend (Increasing): Wenn ein Bild A eine Teilmenge eines Bildes B ist (A <= B), dann ist die morphologische Transformation von A eine Teilmenge der Transformation von B.
  • Idempotenz: Opening und Closing sind idempotent. Das bedeutet, dass das mehrmalige Anwenden der Operation kein weiteres Ergebnis liefert, nachdem sie einmal angewendet wurde. Opening(Opening(Bild)) = Opening(Bild) und Closing(Closing(Bild)) = Closing(Bild).
  • Extensivität/Anti-Extensivität: Closing ist extensiv, d. h., das geschlossene Bild ist "größer" oder gleich dem Originalbild. Opening ist anti-extensiv, d. h., das geöffnete Bild ist "kleiner" oder gleich dem Originalbild.

Es besteht eine interessante Beziehung zwischen morphologischen Operatoren und Rangordnungsfiltern. Wie bereits erwähnt, ist die Erosion mit einem flachen Strukturelement äquivalent zum Minimumfilter (Rang 1), und die Dilatation mit einem flachen Strukturelement ist äquivalent zum Maximumfilter (höchster Rang). Dies zeigt, dass die grundlegenden morphologischen Operationen spezielle Fälle von Rangordnungsfiltern sind.

Vergleich der Hauptoperationen

OperationDefinitionEffekt auf weiße Bereiche (Vordergrund)Typische Anwendung
ErosionSE passt vollständigSchrumpftRauschen entfernen, Objekte trennen
DilatationSE trifft mindestens ein PixelVergrößert/ExpandiertLücken schließen, Objekte verbinden
OpeningErosion dann DilatationEntfernt kleine helle Flecken, trennt dünne VerbindungenRauschen filtern, Objektkonturen glätten
ClosingDilatation dann ErosionSchließt kleine Löcher, verbindet nahe ObjekteLöcher füllen, Objektkonturen glätten
Morphologischer GradientDilatation - ErosionHebt Konturen hervorKantendetektion
Top HatBild - OpeningHebt kleine helle Merkmale hervorHelle Merkmale extrahieren
Black HatClosing - BildHebt kleine dunkle Merkmale hervorDunkle Merkmale extrahieren

Häufig gestellte Fragen (FAQs)

Was sind die grundlegenden morphologischen Operationen?

Die zwei grundlegenden Operationen sind Erosion und Dilatation.

Wofür wird ein Strukturelement verwendet?

Das Strukturelement (Kernel) ist eine Vorlage, die die Form und Größe für die morphologische Operation definiert. Es wird über das Bild verschoben, um lokale Operationen durchzuführen.

Was ist der Unterschied zwischen Opening und Closing?

Opening ist Erosion gefolgt von Dilatation und wird verwendet, um Rauschen zu entfernen und dünne Verbindungen zu trennen. Closing ist Dilatation gefolgt von Erosion und wird verwendet, um Löcher zu schließen und nahe Objekte zu verbinden.

Können morphologische Operationen auf Graustufenbilder angewendet werden?

Ja, morphologische Operationen können auf Graustufenbilder erweitert werden, typischerweise basierend auf Minimums- (für Erosion) und Maximumsoperationen (für Dilatation) innerhalb des Bereichs des Strukturelements.

Wann werden morphologische Operationen typischerweise eingesetzt?

Sie werden oft nach der Bildsegmentierung verwendet, um das Ergebnis zu verbessern, Rauschen zu entfernen, Objekte zu manipulieren (trennen/verbinden) oder Forminformationen zu gewinnen.

Zusammenfassend lässt sich sagen, dass morphologische Transformationen leistungsstarke Werkzeuge in der Bildverarbeitung sind, die es ermöglichen, die Struktur und Form von Objekten in einem Bild effektiv zu analysieren und zu manipulieren. Ihre Einfachheit und Vielseitigkeit, insbesondere in Kombination mit einem gut gewählten Strukturelement, machen sie unverzichtbar für Aufgaben wie Rauschunterdrückung, Segmentierung und Merkmalsextraktion.

Hat dich der Artikel Morphologische Transformationen in der Bildverarbeitung interessiert? Schau auch in die Kategorie Ogólny rein – dort findest du mehr ähnliche Inhalte!

Avatar photo

Andenmatten Soltermann

Hallo! Ich bin Andenmatten Soltermann, ein Schweizer Fotograf, der leidenschaftlich die Essenz der Welt durch seine Linse einfängt. Geboren und aufgewachsen in den majestätischen Schweizer Alpen, haben die deutsche Sprache und atemberaubende Landschaften meine kreative Vision geprägt. Meine Liebe zur Fotografie begann mit einer alten analogen Kamera, und seitdem widme ich mein Leben der Kunst, visuelle Geschichten zu erzählen, die berühren und verbinden.In meinem Blog teile ich praktische Tipps, Techniken und Erfahrungen, um dir zu helfen, deine fotografischen Fähigkeiten zu verbessern – egal, ob du ein neugieriger Anfänger oder ein erfahrener Profi bist. Von der Beherrschung des natürlichen Lichts bis hin zu Ratschlägen für wirkungsvolle Bildkompositionen ist es mein Ziel, dich zu inspirieren, die Welt mit neuen Augen zu sehen. Mein Ansatz verbindet Technik mit Leidenschaft, immer auf der Suche nach dem Funken, der ein Foto unvergesslich macht.Wenn ich nicht hinter der Kamera stehe, findest du mich auf Bergpfaden, auf Reisen nach neuen Perspektiven oder beim Genießen der Schweizer Traditionen, die mir so am Herzen liegen. Begleite mich auf dieser visuellen Reise und entdecke, wie Fotografie die Art und Weise, wie du die Welt siehst, verändern kann.

Go up