skeleton_endpoints3d — 3D medial op

• Datenarten: voxel → voxel

• Aufruf: import fullseye as fs; fs.ledger.skeleton_endpoints3d(vol) (die Implementierung direkt: import medial; medial.skeleton_endpoints3d(vol); aus dem Register: ops3d.get("skeleton_endpoints3d"))

Verwendung

Liefert die Endpunkte eines 3-D-Skeletts (höchstens ein Skelettvoxel in der 26er-Nachbarschaft) als Voxelmaske.

Isolierte Voxel (Grad 0) zählen ebenfalls als Endpunkte. 3D-Version von r2_endpoints_skeleton aus 2D.

Ablauf: _ensure_skeleton wandelt die Eingabe in bool um; gibt es ein Inneres-Voxel, dessen 6-Nachbarschaft vollständig Vordergrund ist, wird mit skeletonize_vol ausgedünnt; danach zählt eine Faltung mit einem 3x3x3-Kernel mit lauter Werten 1 (Mitte 0, außen 0 durch mode="constant") die Skelett-Voxel in der 26-Nachbarschaft jedes Voxels (Grad), und skel & (Grad <= 1) wird zurückgegeben. Ein Skelett-Voxel am Rand des Volumens wird, da außen als 0 gilt, zum Endpunkt, wenn der Ast dort abbricht.

Rückgabewert: bool-Array derselben Form wie die Eingabe (Endpunkt = True). Ohne Vordergrund komplett False. np.argwhere liefert (z, y, x)-Koordinaten, .sum() die Anzahl der Endpunkte.

Prüfung (ValueError): Eingabe kein 3-D, leeres Array oder float mit NaN/Inf. ImportError, wenn eine Ausdünnung nötig ist und scikit-image fehlt.

Hinweise:

• Endpunkte sind an jedem Astende exakt, aber auch die Spitzen von Spornen (kurze Äste aus der Ausdünnung) zählen als Endpunkte. Wer nur die Enden der Struktur will, kappt zuerst mit skeleton_prune3d.

• Ein Skelett nur aus geschlossenen Schleifen (Ringen) hat 0 Endpunkte.

• Wird nur die Anzahl gebraucht, liefert topology_signature endpoints / isolated getrennt.

Referenzen (Beispieldaten, Literatur)

• 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.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• medial_topology — py -3.11 examples_3d/medial_topology.py

Typkompatible Folge-Operatoren (nehmen voxel als Eingabe)

voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa

Gleiche Kategorie (medial)

distance_ridge · skeletonize_vol · medial_axis_points · topology_signature · medial_match · skeleton_junctions3d · skeleton_prune3d · 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.