[scikit-image] 77. サイズの異なる八角形の構造化要素を生成(skimage.morphology.octagon)

matplotlib

はじめに

本記事では、scikit-imageのmorphologyモジュールに含まれるoctagon関数を用いて、サイズの異なる八角形の構造化要素を生成し視覚化する方法を説明します。これらの構造化要素は、画像の形態学的処理(膨張、収縮、オープニング、クロージングなど)に使用され、特定の形状や特徴を強調したり除去したりするのに役立ちます。

コード

解説

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

バージョン

構造化要素の生成

octagon関数では、第一引数が垂直・平行な辺の長さを、第二引数が斜めになっている辺の高さ(幅)を指定します。

構造化要素の表示

plt.figure(figsize=(10,6))でグラフ領域を作成し、fig.add_subplot(2, 3, idx)で2×3の配置で図を順番に生成します。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でインデックスを1増やし、次の図の作成に進みます。

斜めの辺の高さが等しく、垂直・平行な辺の長さの異なる八角形の構造化要素

第一引数を変化させることで、八角形の辺の垂直部分と平行部分の長さを調整できます。

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

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

参考

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

コメント