[scikit-image] 78. サイズの異なる星型の構造化要素を生成(skimage.morphology.star)

matplotlib

はじめに

この記事では、scikit-imageのmorphologyモジュールに含まれる「star」関数を使用して、サイズの異なる星型の構造化要素を生成する方法について解説します。モルフォロジー処理で使用される星型フィルタの作成と表示方法を紹介します。

コード

解説

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

バージョン

構造化要素の生成

star(5)を使用すると、サイズ5の正方形とその正方形が45度回転した形状が重なったような星型の構造化要素が生成されます。

構造化要素の表示

plt.figure(figsize=(12,6))でfigを作成し、fig.add_subplot(2, 3, idx)で図を順次配置します。構造化要素はax.imshow(struc)で表示します。

二重のfor文とax.textを使用して、各ピクセルの中央に値を表示します。

ax.xaxis.set_major_locator(ticker.MultipleLocator(1))を設定することで、1単位ごとに目盛りを表示します。

この状態でax.grid()を実行すると、1単位間隔でグリッドが表示されます。

ax.set(xlim=(-1,struc.shape[0]),ylim=(-1,struc.shape[0]))で、各構造化要素のサイズに合わせた軸範囲を設定します。

ax.set_axisbelow(True)を使用して、グリッドを最背面に表示します。

idx += 1で変数を増分し、次の図の作成に進みます。

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

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

まとめ

scikit-imageのmorphologyモジュールのstar関数を使うことで、簡単にサイズの異なる星型の構造化要素を生成できることを学びました。これらの構造化要素は画像のモルフォロジー処理において様々なフィルタリング効果を得るために利用できます。

参考

Generate footprints (structuring elements) — skimage 0.26.0rc0.dev0 documentation
skimage.morphology — skimage 0.26.0rc0.dev0 documentation

コメント