LoslegenKostenlos starten

Maske anwenden

Auch wenn Masken binär sind, können sie auf Bilder angewendet werden, um Pixel herauszufiltern, bei denen die Maske False ist.

Die NumPy-Funktion where() ist eine flexible Möglichkeit, Masken anzuwenden. Sie nimmt drei Argumente entgegen:

np.where(condition, x, y)

condition, x und y können entweder Arrays oder Einzelwerte sein. So kannst du die ursprünglichen Bildwerte beibehalten und maskierte Werte auf 0 setzen.

Üben wir das Anwenden von Masken, indem wir die knochenähnlichen Pixel aus dem Röntgenbild der Hand (im) auswählen.

Diese Übung ist Teil des Kurses

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

Übungsanweisungen

  • Erstelle eine boolesche Knochenmaske, indem du Pixel mit Werten größer oder gleich 145 auswählst.
  • Wende die Maske mit np.where() auf dein Bild an. Werte außerhalb der Maske sollen auf 0 gesetzt werden.
  • Erstelle ein Histogramm des maskierten Bildes. Verwende folgende Argumente, um nur von Null verschiedene Pixel zu berücksichtigen: min=1, max=255, bins=255.
  • Zeichne das maskierte Bild und das Histogramm. Das wurde bereits für dich erledigt.

Interaktive praktische Übung

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

# Import SciPy's "ndimage" module
____

# Screen out non-bone pixels from "im"
mask_bone = ____
im_bone = np.where(____, ____, ____)

# Get the histogram of bone intensities
hist = ____

# Plot masked image and histogram
fig, axes = plt.subplots(2,1)
axes[0].imshow(im_bone)
axes[1].plot(hist)
format_and_render_plot()
Code bearbeiten und ausführen