はじめに
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.25.1 documentation
コメント