distance_ridge — 3D medial op

• Data kinds: voxel → voxel

• Call: import fullseye as fs; fs.ledger.distance_ridge(vol, min_radius=0.0) (implementation को सीधे call करना हो तो import medial; medial.distance_ridge(vol, min_radius=0.0), registry से लेना हो तो ops3d.get("distance_ridge"))

• Ledger के ज़रिए return value: fullseye.ledger.distance_ridge(...) केवल घोषित out type voxel का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.distance_ridge.raw(...) का उपयोग करें, या medial.distance_ridge को सीधे call करें।

• मूल function का return: (ridge, dist)

• GPU: हाँ (allow-list का mechanical GPU path, CuPy)। device="auto" मापे गए आकार (16,777,216 pixel) और उससे बड़े पर GPU चुनता है

उपयोग

EDT के ridge (distance field के local maxima) को medial के रूप में निकालता है। return value (ridge_mask, edt)।

हर foreground voxel का EDT निकाला जाता है, और 26-neighbourhood के local maxima (अपना EDT आसपास के 26 voxel के maximum से कम न हो) को medial माना जाता है। यह मानदंड object की local dimension के अनुसार अपने आप सही dimension देता है:

blob (sphere) -> EDT unimodal -> point जैसा medial (1 centre point)।

tube (cylinder)-> axis की दिशा में flat, radial दिशा में unimodal -> line जैसा medial (axis line)।

plate (slab)-> plane के भीतर flat, thickness की दिशा में unimodal -> surface जैसा medial (mid-surface)।

boundary voxel का भीतरी पड़ोसी हमेशा बड़ा होता है, इसलिए वह maximum नहीं बनता और बाहरी shell अपने आप हट जाता है। flat ridge (axis/plane) बराबर मान वाले पड़ोसी को अनुमति (>=) देने से लगातार line/surface के रूप में बचा रहता है।

Args:

vol: binary voxel (bool / 0-1 का 3D)।

min_radius: इस EDT मान या उससे कम वाले कमजोर ridge को हटाने का threshold (default 0 = कुछ नहीं हटता)। noise दबाने के लिए।

Returns:

ridge_mask (bool 3D): medial voxel।

edt (float64 3D): हर voxel से background तक की Euclidean distance (= local radius)।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• pcl_geodesic — py -3.11 examples_3d/pcl_geodesic.py

वे अगले ops जिनसे type जुड़ता है (voxel को input के रूप में लेते हैं)

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

इसी category के (medial)

skeletonize_vol · medial_axis_points · topology_signature · medial_match · skeleton_junctions3d · skeleton_endpoints3d · skeleton_prune3d · skeleton_branches3d


*Provenance: medial.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.