Aplicar una máscara
Aunque las máscaras son binarias, se pueden aplicar a imágenes para filtrar los píxeles donde la máscara es False.
La función where() de NumPy es una forma flexible de aplicar máscaras. Acepta tres argumentos:
np.where(condition, x, y)
condition, x y y pueden ser arrays o valores individuales. Esto te permite conservar los valores originales de la imagen mientras estableces los valores enmascarados a 0.
Practiquemos aplicando máscaras seleccionando los píxeles similares a hueso de la radiografía de la mano (im).
Este ejercicio forma parte del curso
Análisis de imágenes biomédicas en Python
Instrucciones del ejercicio
- Crea una máscara booleana del hueso seleccionando los píxeles mayores o iguales que 145.
- Aplica la máscara a tu imagen usando
np.where(). Los valores que no estén en la máscara deben ponerse a0. - Crea un histograma de la imagen enmascarada. Usa los siguientes argumentos para seleccionar solo píxeles distintos de cero:
min=1,max=255,bins=255. - Representa la imagen enmascarada y el histograma. Esto ya está hecho por ti.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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()