始める無料で始める

マスクを適用する

マスクは2値(バイナリ)ですが、画像に適用することで、マスクが False のピクセルを除外できます。

NumPy の where() 関数は、マスクを柔軟に適用するための便利な方法です。この関数は3つの引数を取ります。

np.where(condition, x, y)

conditionxy にはそれぞれ配列または単一の値を指定できます。これにより、元の画像の値をそのまま残しつつ、マスク外のピクセルを0に設定できます。

ここでは、手のX線画像(im)から骨に似たピクセルを選択することで、マスクの適用を練習しましょう。

この演習はコースの一部です

Python による生体医療画像解析

コースを見る

演習の手順

  • 145以上のピクセルを選択して、骨のブールマスクを作成します。
  • np.where() を使ってマスクを画像に適用します。マスク外の値は 0 に設定してください。
  • マスクを適用した画像のヒストグラムを作成します。ゼロでないピクセルのみを選択するために、min=1max=255bins=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()
コードを編集して実行