log_zero_crossings — 3D edges op

• Data kinds: voxel → voxel

• Call: import fullseye as fs; fs.ledger.log_zero_crossings(vol, sigma: 'float' = 1.5, rel_thresh: 'float' = 0.001) -> 'np.ndarray' (implementation को सीधे call करना हो तो import edges3d; edges3d.log_zero_crossings(vol, sigma: 'float' = 1.5, rel_thresh: 'float' = 0.001) -> 'np.ndarray', registry से लेना हो तो ops3d.get("log_zero_crossings"))

उपयोग

Laplacian-of-Gaussian के zero-crossing edges।

Parameters

vol : (D,H,W) array

grey voxel।

sigma : float

LoG का standard deviation (> 0)।

rel_thresh : float

flat क्षेत्रों के numerical noise से बने झूठे crossing को दबाने वाला relative threshold। केवल तभी अपनाया जाता है जब crossing pair का LoG अंतर |a-b|

rel_thresh * max|L| से अधिक हो।

Returns

edge_mask : (D,H,W) bool

sign बदलने वाले adjacent pairs में से छोटे |LoG| वाली ओर (शून्य के अधिक निकट वाली ओर) को set करने वाला mask।

Notes

हर axis दिशा में दो प्रकार के zero crossing detect किए जाते हैं:

(1) grid के बीच crossing — adjacent pair (a,b) का sign product a*b < 0 (दोनों ओर non-zero और sign उलटा)। मोटाई कम रखने के लिए pair में छोटे |LoG| वाली ओर के 1 voxel को दिया जाता है।

(2) grid-aligned crossing — बीच का voxel ठीक शून्य (L==0) हो और दोनों पड़ोसी विपरीत sign के हों (sign उस voxel पर शून्य से गुज़रता है)। SDF जैसे grid-aligned surface पर, जहाँ LoG ठीक grid point पर 0 होता है, असली edge के लिए a*b हमेशा 0 होता है और (1) उसे छोड़ देता है, इसलिए उस voxel को crossing के रूप में set किया जाता है। constant zero क्षेत्र में दोनों पड़ोसी भी 0 होते हैं, Lm*Lp==0, इसलिए वे बाहर रहते हैं (गलत detection नहीं)।

दोनों ही स्थितियों में flat क्षेत्रों का numerical noise relative threshold (rel_thresh * max|L|) से दबाया जाता है।

संदर्भ (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 करते हैं)

• edges_3d — py -3.11 examples_3d/edges_3d.py

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

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

इसी category के (edges)

gradient3d · canny3d · link_edges · edge_points


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

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