調整遮罩
不完美的遮罩可以透過新增或移除像素來微調。SciPy 提供了多種實用的方法來達成這些目的,包括:
binary_dilation:沿邊緣新增像素(膨脹)binary_erosion:沿邊緣移除像素(侵蝕)binary_opening:先侵蝕再膨脹,用來「打開」邊緣附近的區域binary_closing:先膨脹再侵蝕,用來「填補」孔洞
在本練習中,請先建立骨骼遮罩,然後調整它以納入更多像素。
在後續的練習中,我們已替你執行以下匯入:
import scipy.ndimage as ndi
本練習屬於課程
Python 的生醫影像分析
練習說明
- 從
im中選出大於或等於145的像素來建立骨骼遮罩。 - 使用
ndi.binary_dilation()放大mask_bone的大小。將iterations設為5,以重複進行多次膨脹。 - 使用
ndi.binary_closing()來填補mask_bone中的孔洞。將iterations設為5,以填補寬度最多達 10 個像素的孔洞。 - 繪製原始遮罩與調整後的遮罩。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create and tune bone mask
mask_bone = ____
mask_dilate = ndi.binary_dilation(____, ____)
mask_closed = ____
# Plot masked images
fig, axes = plt.subplots(1,3)
axes[0].imshow(mask_bone)
axes[1].imshow(mask_dilate)
____
format_and_render_plot()