.vtp / .vtk サーフェスメッシュ、または単一ラベルの .nii.gz segmentation を読み込み、局所 cut と hole fill を行うためのデスクトップ GUI です。
- Python 3.10 以上
- Poetry
- macOS / Linux / Windows
リポジトリのルートで実行します。
poetry install仮想環境に入らずにそのまま起動できます。
poetry run python scripts/pv_mesh_editor.py起動時に .vtp / .vtk、または単一ラベルの .nii.gz segmentation を直接指定することもできます。
poetry run python scripts/pv_mesh_editor.py path/to/mesh.vtp
poetry run python scripts/pv_mesh_editor.py path/to/mesh.vtk
poetry run python scripts/pv_mesh_editor.py path/to/segmentation.nii.gz- 左パネル: ファイル操作、ツール選択、各ツールのコマンド
- 右側: 3D メッシュビュー
- 下部ステータスバー: 現在ツール、制御点数、loop 状態、実行結果
Open Mesh...:.vtp/.vtk、または単一ラベルの.nii.gzsegmentation を読み込むSave: 現在の保存先へ保存Save As...: 別名で.vtp/.vtkを選んで保存Reset View: カメラを初期位置に戻すShow edges: エッジ表示のオン/オフ
Tool Selector で Geodesic Cutter を選びます。
Right Click: メッシュ頂点にスナップして制御点を追加Shift + Right Click: ループを閉じるCmd + Right Click: 直前の点を削除Ctrl + Right Click: macOS 以外でもCmd相当として扱う
Delete Smallest Region: ループで囲われた候補のうち最小面積側を削除Delete Largest Region: ループで囲われた候補のうち最大面積側を削除Undo Last Cut: 直前の cut を取り消す
.vtp/.vtk、または.nii.gzsegmentation を開く- 右クリックで 3 点以上追加する
Shift + Right Clickでループを閉じるDelete Smallest RegionまたはDelete Largest Regionを実行する- 必要なら
Undo Last Cutを使う
Tool Selector で Fill Holes を選びます。
Max Hole Size: この値以下の穴を埋める
Fill Holes: 穴埋めを実行Undo Fill: 直前の fill を取り消す
Max Hole Sizeを設定するFill Holesを実行する- 必要なら
Undo Fillを使う
fill 後は三角形セルに整形された状態で保存されます。
- 編集対象は単一の
.vtp/.vtkサーフェスメッシュです .nii.gzは segmentation 入力としてのみ扱い、非ゼロラベルが 1 種類だけのときに読み込めます.nii.gzを開いた場合も、保存形式は.vtp/.vtkのみです- NIfTI の spacing / origin / orientation を反映してメッシュ化します
- cut と fill の Undo はそれぞれ独立しています
- 他ツール実行後に前ツールの Undo をまたぐ運用は想定していません