Applica una maschera
Anche se le maschere sono binarie, possono essere applicate alle immagini per filtrare i pixel in cui la maschera è False.
La funzione where() di NumPy è un modo flessibile per applicare maschere. Accetta tre argomenti:
np.where(condition, x, y)
condition, x e y possono essere sia array sia singoli valori. Questo ti permette di mantenere i valori originali dell'immagine impostando a 0 i valori mascherati.
Facciamo pratica applicando maschere selezionando i pixel simili all'osso nell'radiografia della mano (im).
Questo esercizio fa parte del corso
Analisi di immagini biomediche in Python
Istruzioni dell'esercizio
- Crea una maschera booleana dell'osso selezionando i pixel maggiori o uguali a 145.
- Applica la maschera all'immagine usando
np.where(). I valori non inclusi nella maschera devono essere impostati a0. - Crea un istogramma dell'immagine mascherata. Usa i seguenti argomenti per selezionare solo i pixel diversi da zero:
min=1,max=255,bins=255. - Traccia l'immagine mascherata e l'istogramma. Questo è già stato fatto per te.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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()