[scikit-image] 71. 画像の強度プロファイルを任意の範囲で表示(skimage.measure profile_line)

python

はじめに

skimage.measureのprofile_lineで、任意の範囲の画像の強度プロファイルを表示する方法について説明する。

コード

コードをダウンロード(.pyファイル)コードをダウンロード(.ipynbファイル)

解説

モジュールのインポートなど

画像の生成

最初にnp.zeros((s, s))で128 x 128のデータを生成する。
次に、(s*np.random.random((2, n**2))).astype(int)で0〜127のランダムな整数を(2,100)の形状で生成する。そして、imの[points[0], points[1]]に該当する部分の要素を1として、ndimage.gaussian_filterでぼかすことで画像データを生成した。

プロファイルの開始と終了点の設定

ラインプロファイルの取得

プロファイルはprofile_lineで(画像,開始点,終了点, linewidth=1)と設定することで得ることができる。linewidthはプロファイルを取得する幅の設定となる。

結果の表示

左の画像の赤線のプロファイルを右図に表示した。
プロファイルのデータポイントは斜めのラインなので171ポイントとなっている。

linewidth=20としたときの結果

linewidthを大きくすることでデータの取得範囲を広げることができる。上の図は、実線上から破線までの範囲のデータの平均値のプロファイルとなっている。

linewidth=40としたときの結果

linewidth=40の場合、実線から±20の範囲のデータのプロファイルとなる。

参考

Module: measure — skimage v0.18.0.dev0 docs

コメント