マスクを適用する
マスクは2値(バイナリ)ですが、画像に適用することで、マスクが 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()