[scikit-image] 14. 3次元ボクセルデータをポリゴンデータに変換( measure.marching_cubes_lewiner)

python

はじめに

skimage.measure の marching_cubes_lewinerを用いてボクセルデータをポリゴンデータへ変換する例を解説する。

コード

解説

マーチングキューブ法を用いた、ボクセルデータのポリゴンデータへの変換を検討する。医療分野では、CTやMRIのボクセルデータをポリゴンデータへ変換するのに用いられているようである。

マーチングキューブ法 - Wikipedia

モジュールのインポート

ボクセルデータの生成

以前作成したボクセルサボテンのデータを用いる。詳細は下記に記してある。

[matplotlib 3D] 47.ボクセルサボテン(Voxel Cactus)
3D形式のデータをもつstlファイルをボクセル形式に変換して、matplotlib のvoxelで表示する。

マーチングキューブ法の適用

最後の0は、levelfloatでボリューム内の等値面を検索するための等高線値となっている。

ポリゴンデータの生成と表示

verts[faces]で三角形のポリゴンデータを得ることができるので、それをPoly3DCollectionとする。
ax.add_collection3d(mesh)とすることで、図中にポリゴンデータを表示する。

軸、視点の設定

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

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

参考

Marching Cubes — skimage 0.22.0 documentation

コメント