LoslegenKostenlos starten

Kanten erkennen (1)

Filter können auch als „Detektoren" verwendet werden. Wenn ein Bildbereich zum Gewichtungsmuster passt, ist der zurückgegebene Wert sehr hoch (oder sehr niedrig).

Bei der Kantenerkennung ist dieses Muster eine Intensitätsänderung entlang einer Ebene. Ein Filter, der horizontale Kanten erkennt, könnte so aussehen:

weights = [[+1, +1, +1],
           [ 0,  0,  0],
           [-1, -1, -1]]

Erstelle in dieser Übung einen vertikalen Kantendetektor und prüfe, wie gut er auf dem Handröntgenbild (im) funktioniert.

Diese Übung ist Teil des Kurses

<Kurs>Biomedizinische Bildanalyse mit Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Erstelle ein 3×3-Array von Filtergewichten, das erkennt, wenn sich die Intensität von links nach rechts ändert. Verwende nur die Werte 1, 0 und -1.
  • Führe die Faltung von im mit dem Kantendetektor durch.
  • Stelle die horizontalen Kanten mit der Colormap seismic dar. Verwende vmin=-150 und vmax=150, um die Skalierung deiner Colormap anzupassen.
  • Füge eine Farbskala (colorbar) hinzu und rendere die Ergebnisse.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Set weights to detect vertical edges
weights = [[____], [____], [____]]

# Convolve "im" with filter weights
edges = ____

# Draw the image in color
plt.imshow(____, ____, vmin=-150, vmax=150)
____
format_and_render_plot()
Code bearbeiten und ausführen