はじめに
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を指定して白色にしています。
ボクセルグラフについては下記で詳しく解説しています。

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を実行して変数を増分し、次の図の作成に進みます。

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