Aplicar uma máscara
Embora máscaras sejam binárias, elas podem ser aplicadas a imagens para filtrar pixels em que a máscara é False.
A função where() do NumPy é uma forma flexível de aplicar máscaras. Ela recebe três argumentos:
np.where(condition, x, y)
condition, x e y podem ser arrays ou valores únicos. Isso permite manter os valores originais da imagem enquanto define os valores mascarados como 0.
Vamos praticar a aplicação de máscaras selecionando os pixels semelhantes a osso no raio-x da mão (im).
Este exercicio faz parte do curso
Análise de Imagens Biomédicas em Python
Instruções do exercicio
- Crie uma máscara Booleana do osso selecionando pixels maiores ou iguais a 145.
- Aplique a máscara à sua imagem usando
np.where(). Valores fora da máscara devem ser definidos como0. - Crie um histograma da imagem mascarada. Use os seguintes argumentos para selecionar apenas os pixels diferentes de zero:
min=1,max=255,bins=255. - Plote a imagem mascarada e o histograma. Isso já foi feito para você.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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()