[scikit-image] 74. サイズの異なるダイヤモンド形の構造化要素を生成(skimage.morphology.diamond)

matplotlib

はじめに

scikit-imageライブラリのmorphologyモジュールに含まれるdiamondは、頂点が上下左右を向いたひし形(ダイヤモンド形)の構造化要素を生成します。この関数はサイズを指定することで、異なる大きさのひし形を作成することができます。

コード

解説

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

バージョン

構造化要素の生成

辞書形式でradiusが1から6のdiamondを作成します。

構造化要素の表示

まず plt.figure(figsize=(10,6)) で図を作成し、fig.add_subplot(2, 3, idx) で複数の subplot を順番に配置します。構造化要素は 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.diamond関数を用いることで、頂点が上下左右を向いたひし形の構造化要素を簡単に生成できます。サイズパラメータを変更することで要素の大きさを調整でき、膨張や収縮などの形態学的処理において様々な効果を得ることが可能です。

参考

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

コメント