medial op• 資料種類:voxel → voxel
• 呼叫: import fullseye as fs; fs.ledger.skeleton_prune3d(vol, length=1)(要直接呼叫實作,import medial; medial.skeleton_prune3d(vol, length=1);從台帳取用則 ops3d.get("skeleton_prune3d"))
修剪 3D 骨架的毛刺(短枝)。端點去除迭代 length 次 = 去除枝長 <=length 的枝。
2D 的 pruning 的 3D 版。孤立 voxel 按端點處理而被刪除。
步驟: 用 _ensure_skeleton 轉為 bool(若有 interior voxel 則用 skeletonize_vol 細化),然後把下列操作重複 length 次 — 同時刪除所有 26 鄰域度 <= 1 的 voxel(端點與孤立點)。當骨架變空或不再有端點時(只剩閉環時)中途停止。
引數: length 經 int(length) 轉換,為負則取 0(為 0 時把細化後的骨架原樣回傳)。每 1 次迭代刪去各分支尖端的 1 個 voxel,因此長度 <= length voxel 的分支(毛刺)會一直刪到根部。
回傳值: 與輸入同形狀的 bool 陣列。
注意(需要了解的行為):
• 長分支也會從尖端縮短 length 個 voxel(這並不是只挑出毛刺刪除的處理)。需要主分支的端點位置時,請注意剪枝後的端點比原來向內偏移 length。
• 2 個分支點之間的短分支,兩端都是分支點(度 >= 3),因此不會被刪除。
• 孤立 voxel 在第 1 次迭代就被刪除。
• 每次迭代都會重新計算度,因此成本與 length 成正比。
檢驗(ValueError): 不是 3-D、空陣列、含 NaN/Inf 的輸入。需要細化而沒有 scikit-image 時為 ImportError。後續為 skeleton_endpoints3d / skeleton_junctions3d / skeleton_branches3d / topology_signature。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• medial_topology — py -3.11 examples_3d/medial_topology.py
voxel 作為輸入)voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa
medial)distance_ridge · skeletonize_vol · medial_axis_points · topology_signature · medial_match · skeleton_junctions3d · skeleton_endpoints3d · skeleton_branches3d
*Provenance: medial.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.