medial op• Datenarten: voxel → voxel
• Aufruf: import fullseye as fs; fs.ledger.skeleton_prune3d(vol, length=1) (die Implementierung direkt: import medial; medial.skeleton_prune3d(vol, length=1); aus dem Register: ops3d.get("skeleton_prune3d"))
Beschneidet die Härchen (kurzen Äste) eines 3-D-Skeletts. Endpunktentfernung length-mal wiederholt = Äste der Länge <= length verschwinden.
3D-Version von pruning aus 2D. Isolierte Voxel gelten als Endpunkte und verschwinden.
Ablauf: mit _ensure_skeleton in bool umwandeln (bei Inneres-Voxeln mit skeletonize_vol ausdünnen), dann length-mal wiederholen: alle Voxel mit Grad <= 1 in der 26-Nachbarschaft (Endpunkte und isolierte Punkte) gleichzeitig entfernen. Wird das Skelett leer oder gibt es keine Endpunkte mehr (bleiben nur geschlossene Schleifen übrig), wird vorzeitig beendet.
Argumente: length wird mit int(length) umgewandelt und bei negativem Wert auf 0 gesetzt (bei 0 wird das ausgedünnte Skelett unverändert zurückgegeben). 1 Iteration entfernt das 1 Spitzen-Voxel jedes Astes, daher verschwinden Äste (Sporne) mit einer Länge von <= length Voxeln bis zur Wurzel.
Rückgabewert: bool-Array derselben Form wie die Eingabe.
Hinweise (Verhalten, das man kennen sollte):
• Auch lange Äste werden von der Spitze her um length Voxel kürzer (es ist kein Verfahren, das gezielt nur Sporne entfernt). Werden die Endpunktpositionen der Hauptäste gebraucht: Die Endpunkte nach dem Kappen liegen length weiter innen als die ursprünglichen Endpunkte.
• Ein kurzer Ast zwischen 2 Verzweigungen verschwindet nicht, da beide Enden Verzweigungspunkte sind (Grad >= 3).
• Isolierte Voxel verschwinden in der 1. Iteration.
• Der Grad wird in jeder Iteration neu gezählt, daher sind die Kosten proportional zu length.
Prüfung (ValueError): Eingabe kein 3-D, leeres Array oder mit NaN/Inf. Ist eine Ausdünnung nötig und fehlt scikit-image, ImportError. Nachgelagert: skeleton_endpoints3d / skeleton_junctions3d / skeleton_branches3d / topology_signature.
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• medial_topology — py -3.11 examples_3d/medial_topology.py
voxel als Eingabe)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 Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.