应用掩膜
尽管掩膜是二值的,但可以将其"应用"到图像上,以滤除在掩膜中为 False 的像素。
NumPy 的 where() 函数是应用掩膜的一种灵活方式。它接收 3 个参数:
np.where(condition, x, y)
condition、x 和 y 都可以是数组或单个数值。这样,您就可以在保留原始图像像素值的同时,将被掩蔽的位置设为 0。
下面来练习应用掩膜:从手部 X 光片(im)中选出类似骨骼的像素。
本练习是课程的一部分
Python 中的生物医学图像分析
练习说明
- 通过选择大于等于 145 的像素来创建布尔类型的骨骼掩膜。
- 使用
np.where()将掩膜应用到图像上。不在掩膜中的像素值应设为0。 - 为掩蔽后的图像绘制直方图。仅选择非零像素,使用参数:
min=1、max=255、bins=255。 - 绘制掩蔽后的图像和直方图。此步骤已为您完成。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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()