Appliquer un masque
Même si les masques sont binaires, on peut les appliquer aux images pour filtrer les pixels là où le masque est False.
La fonction where() de NumPy est une façon souple d'appliquer des masques. Elle prend trois arguments :
np.where(condition, x, y)
condition, x et y peuvent être soit des tableaux, soit des valeurs uniques. Cela vous permet de conserver les valeurs originales de l'image tout en remplaçant les valeurs masquées par 0.
Exerçons-nous à appliquer des masques en sélectionnant les pixels de type os dans la radiographie de la main (im).
Cette activité fait partie du cours
Analyse d'images biomédicales en Python
Instructions de l’exercice
- Créez un masque booléen des os en sélectionnant les pixels supérieurs ou égaux à 145.
- Appliquez le masque à votre image avec
np.where(). Les valeurs qui ne sont pas dans le masque doivent être mises à0. - Créez un histogramme de l'image masquée. Utilisez les arguments suivants pour ne sélectionner que les pixels non nuls :
min=1,max=255,bins=255. - Tracez l'image masquée et l'histogramme. Cela a été fait pour vous.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()