OpenCV Bildglättung

In der Bildverarbeitung ist Glättung (auch Weichzeichnen genannt) eine häufige Operation, um Rauschen oder Details in einem Bild zu reduzieren.

OpenCV bietet verschiedene Glättungsmethoden. In diesem Artikel werden vier häufig verwendete Glättungstechniken ausführlich erklärt: Mittelwertfilter, Gauß-Filter, Medianfilter und bilateraler Filter.

1. Mittelwertfilter (cv2.blur())

Der Mittelwertfilter ist eine der einfachsten Glättungsmethoden.

Das Prinzip des Mittelwertfilters besteht darin, den Wert jedes Pixels im Bild durch den Durchschnittswert seiner umgebenden Pixel zu ersetzen.

Der Mittelwertfilter kann Rauschen effektiv entfernen, kann jedoch dazu führen, dass das Bild unscharf wird.

Nutzung

Beispiel

import cv2

# Bild einlesen
image = cv2.imread('image.jpg')

# Mittelwertfilter anwenden
blurred_image = cv2.blur(image, (5, 5))

# Ergebnis anzeigen
cv2.imshow('Blurred Image', blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.blur(image, (5, 5)) Parameterbeschreibung

  • image: Eingabebild.
  • (5, 5): Größe des Filterkerns, die den Bereich der Mittelwertbildung in horizontaler und vertikaler Richtung angibt.

Anwendungsszenarien

Der Mittelwertfilter eignet sich zum Entfernen von zufälligem Rauschen in Bildern, kann jedoch dazu führen, dass Bildkanten unscharf werden.

2. Gauß-Filter (cv2.GaussianBlur())

Gauß-Filter ist eine Glättungsmethode, die auf der Gauß-Funktion basiert. Im Gegensatz zum Mittelwertfilter weist der Gauß-Filter dem zentralen Pixel ein höheres Gewicht und den Randpixeln ein niedrigeres Gewicht zu, wenn der Pixelmittelwert berechnet wird.

Der Gauß-Filter kann Bildkanteninformationen besser bewahren, während er Rauschen entfernt.

Nutzung

Beispiel

import cv2

# Bild einlesen
image = cv2.imread('image.jpg')

# Gauß-Filter anwenden
blurred_image = cv2.GaussianBlur(image, (5, 5), 0)

# Ergebnis anzeigen
cv2.imshow('Gaussian Blurred Image', blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.GaussianBlur(image, (5, 5), 0) Parameterbeschreibung

  • image: Eingabebild.
  • (5, 5): Größe des Filterkerns.
  • 0: Standardabweichung des Gauß-Kernels. Wenn sie auf 0 gesetzt wird, wird sie automatisch anhand der Kernelgröße berechnet.

Anwendungsszenarien

Der Gauß-Filter eignet sich zum Entfernen von Gauß-Rauschen aus Bildern und leistet gute Arbeit bei der Bewahrung von Bildkanteninformationen.

3. Medianfilter (cv2.medianBlur())

Der Medianfilter ist eine nichtlineare Glättungsmethode. Sein Prinzip besteht darin, den Wert jedes Pixels im Bild durch den Medianwert seiner umgebenden Pixel zu ersetzen.

Der Medianfilter ist sehr effektiv beim Entfernen von Salz-und-Pfeffer-Rauschen (d. h. zufälligen schwarzen und weißen Punkten im Bild).

Nutzung

Beispiel

import cv2

# Bild einlesen
image = cv2.imread('image.jpg')

# Medianfilter anwenden
blurred_image = cv2.medianBlur(image, 5)

# Ergebnis anzeigen
cv2.imshow('Median-gefiltertes Bild', blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.medianBlur(image, 5) Parameterbeschreibung

  • image: Eingabebild.
  • 5: Größe des Filterkerns, muss eine ungerade Zahl sein.

Anwendungsszenarien

Der Medianfilter eignet sich zum Entfernen von Salz-und-Pfeffer-Rauschen aus Bildern und leistet gute Arbeit bei der Bewahrung von Bildkanteninformationen.

4. Bilateralfilter (cv2.bilateralFilter())

Der bilaterale Filter ist eine nichtlineare Glättungsmethode, die räumliche Nähe und Ähnlichkeit der Pixelwerte kombiniert.

Im Gegensatz zum Gauß-Filter kann der bilaterale Filter Bildkanteninformationen bewahren, während er das Bild glättet. Das liegt daran, dass der bilaterale Filter nicht nur den räumlichen Abstand zwischen Pixeln berücksichtigt, sondern auch die Differenz zwischen Pixelwerten.

Nutzung

Beispiel

import cv2

# Bild einlesen
image = cv2.imread('image.jpg')

# Bilateralen Filter anwenden
blurred_image = cv2.bilateralFilter(image, 9, 75, 75)

# Ergebnis anzeigen
cv2.imshow('Bilateral gefiltertes Bild', blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.bilateralFilter(image, 9, 75, 75) Parameterbeschreibung

  • image: Eingabebild.
  • 9: Größe des Filterkerns.
  • 75: Standardabweichung im Farbraum, die die Gewichtung der Ähnlichkeit der Pixelwerte steuert.
  • 75: Standardabweichung im Koordinatenraum, die die Gewichtung des räumlichen Abstands steuert.

Anwendungsszenarien

Der bilaterale Filter eignet sich dafür, Bildkanteninformationen zu bewahren und gleichzeitig Rauschen zu entfernen, und wird häufig zur Bildverschönerung oder Vorverarbeitung verwendet.

Zusammenfassung

OpenCV bietet eine Vielzahl von Bildglättungsmethoden, jede mit ihren eigenen Vorteilen und Anwendungsszenarien. Der Mittelwertfilter ist einfach und benutzerfreundlich, kann aber Bildunschärfe verursachen; der Gauß-Filter kann Kanteninformationen gut bewahren und gleichzeitig Rauschen entfernen; der Medianfilter eignet sich besonders zum Entfernen von Salz-und-Pfeffer-Rauschen; der bilaterale Filter zeichnet sich durch die Bewahrung von Kanteninformationen aus. Die Wahl einer geeigneten Glättungsmethode entsprechend dem konkreten Anwendungsszenario kann die Wirksamkeit der Bildverarbeitung erheblich verbessern.

Andere Erweiterungen