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>Ü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,0und-1. - Führe die Faltung von
immit dem Kantendetektor durch. - Stelle die horizontalen Kanten mit der Colormap
seismicdar. Verwendevmin=-150undvmax=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()