[scikit-image] 79. サイズの異なる立方体の構造化要素を生成(skimage.morphology.cube)

matplotlib

はじめに

scikit-imageは画像処理ライブラリであり、OpenCVの代替として使うこともできます。scikit-imageのmorphologyモジュールには、morphology(形態学的)処理に使用するための構造化要素を生成する関数が多数用意されています。

今回は、その中でも「cube」関数を紹介します。この関数は、3次元空間における立方体の構造化要素を生成するために使われます。

コード

解説

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

バージョン

構造化要素の生成

cube(5)関数を使用することで、幅、高さ、奥行きがすべて5の立方体構造化要素を生成できます。

構造化要素の表示

plt.figure(figsize=(10, 6.65))でfigオブジェクトを作成し、fig.add_subplot(2, 3, idx)で複数の図を順番に配置していきます。projection=Axes3D.nameを指定することで3Dグラフを表示できます。

ax.voxels(struc, ec=’w’)を使ってボクセルグラフで立方体を表示します。ecパラメータで各セルのエッジカラーを設定でき、この例ではwを指定して白色にしています。

ボクセルグラフについては下記で詳しく解説しています。

[matplotlib 3D] 28. Pythonで3D voxelグラフ
Pythonのmatplotlibを使用した3D voxelグラフの作成方法について解説します。voxelは3次元空間内のピクセルで、データの可視化や3D構造の表現に役立ちます。このチュートリアルでは基本的な使い方から応用例まで紹介します。


ax.xaxis.set_major_locator(ticker.MultipleLocator(1))を使用すると、X軸に1単位ごとに目盛りが表示されます。Y軸とZ軸についても同様の処理を行います。

この設定の後にax.grid()を実行すると、1単位ごとにグリッド線が表示されます。

ax.set(xlim=(-1,struc.shape[0]+1))のように設定することで、各構造化要素のサイズに合わせた適切な軸範囲を設定できます。

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

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

まとめ

scikit-imageのmorphology.cube関数は、3次元画像処理において便利な立方体の構造化要素を簡単に生成できる機能です。指定したサイズの立方体を生成でき、3次元データに対する形態学的操作に利用できます。医療画像処理や3次元画像解析など、様々な分野で活用可能な便利なツールです。

参考

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

コメント