LoslegenKostenlos starten

Kanten erkennen (2)

Die Kantenerkennung kann entlang mehrerer Achsen durchgeführt und anschließend zu einem einzelnen Kantenwert kombiniert werden. Bei 2D-Bildern lassen sich die horizontalen und vertikalen „Karten der Kanten" mithilfe des Satzes des Pythagoras zusammenführen:

$$z = \sqrt{x^2 + y^2}$$

Ein verbreiteter Kantendetektor ist der Sobel-Filter. Der Sobel-Filter gewichtet die mittleren Pixel des Detektors stärker:

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

Verbessere in dieser Übung deinen vorherigen Detektionsversuch, indem du die Ergebnisse zweier mit dem Sobel-Filter bearbeiteter Bilder zu einer kombinierten Kantenkarte zusammenführst.

Diese Übung ist Teil des Kurses

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

Übungsanweisungen

  • Wende ndi.sobel() auf im entlang der ersten und zweiten Achse an.
  • Berechne die gesamte Kantenstärke mit dem Satz des Pythagoras. Verwende np.sqrt() und np.square().
  • Zeige das Betragsbild an. Nutze eine Graustufenfarbkarte und setze vmax auf 75.

Interaktive praktische Übung

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

# Apply Sobel filter along both axes
sobel_ax0 = ndi.sobel(____, axis=____)
sobel_ax1 = ____

# Calculate edge magnitude 
edges = ____

# Plot edge magnitude
plt.imshow(____, ____, ____)
format_and_render_plot()
Code bearbeiten und ausführen