distance_ridge — 3D medial op

• Datenarten: voxel → voxel

• Aufruf: import fullseye as fs; fs.ledger.distance_ridge(vol, min_radius=0.0) (die Implementierung direkt: import medial; medial.distance_ridge(vol, min_radius=0.0); aus dem Register: ops3d.get("distance_ridge"))

• Rückgabewert über das Register: fullseye.ledger.distance_ridge(...) liefert nur den Wert des deklarierten Out-Typs voxel (die zugrunde liegende Funktion gibt zusätzlich Hilfsinformationen zurück). Wird das Verworfene gebraucht, nutze fullseye.ledger.distance_ridge.raw(...) oder rufe medial.distance_ridge direkt auf.

• Rückgabe der Funktion: (ridge, dist)

Verwendung

Extrahiert den Grat der EDT (die lokalen Maxima des Distanzfeldes) als Medialachse. Liefert (ridge_mask, edt).

Berechnet die EDT jedes Vordergrund-Voxels und betrachtet lokale Maxima in der 26-Nachbarschaft (eigene EDT mindestens das Maximum der umliegenden 26 Voxel) als medial. Dieses Kriterium liefert ganz natürlich eine Dimension passend zur lokalen Dimension des Objekts:

Klumpen (Kugel) -> EDT unimodal -> punktförmiges Medial (1 Mittelpunkt).

Rohr (Zylinder)-> flach entlang der Achse, radial unimodal -> linienförmiges Medial (Achslinie).

Platte (Slab)-> flach in der Ebene, unimodal in Dickenrichtung -> flächenförmiges Medial (Mittelfläche).

Ein Rand-Voxel hat immer einen größeren inneren Nachbarn, wird also nie Maximum, und die äußere Hülle fällt natürlich weg. Flache Grate (Achse/Fläche) bleiben als zusammenhängende Linien/Flächen erhalten, weil gleichwertige Nachbarn zugelassen werden (>=).

Args:

vol: binäre Voxel (bool / 0-1, 3D).

min_radius: Schwellwert, unter dem schwache Grate mit EDT kleiner oder gleich diesem Wert verworfen werden (Standard 0 = nichts verwerfen). Zur Rauschunterdrückung.

Returns:

ridge_mask (bool 3D): Medial-Voxel.

edt (float64 3D): euklidischer Abstand jedes Voxels zum Hintergrund (= lokaler Radius).

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)

• pcl_geodesic — py -3.11 examples_3d/pcl_geodesic.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)

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