log_zero_crossings — 3D edges op

• Datenarten: voxel → voxel

• Aufruf: import fullseye as fs; fs.ledger.log_zero_crossings(vol, sigma: 'float' = 1.5, rel_thresh: 'float' = 0.001) -> 'np.ndarray' (die Implementierung direkt: import edges3d; edges3d.log_zero_crossings(vol, sigma: 'float' = 1.5, rel_thresh: 'float' = 0.001) -> 'np.ndarray'; aus dem Register: ops3d.get("log_zero_crossings"))

Verwendung

Nulldurchgangskanten des Laplacian of Gaussian.

Parameters

vol : (D,H,W) array

Grauwert-Voxel.

sigma : float

Standardabweichung des LoG (> 0).

rel_thresh : float

Relativer Schwellwert gegen falsche Durchgänge durch numerisches Rauschen in ebenen Bereichen. Nur übernommen, wenn die LoG-Differenz |a-b| des Paares

rel_thresh * max|L| übersteigt.

Returns

edge_mask : (D,H,W) bool

Maske, die von jedem benachbarten Paar mit Vorzeichenwechsel die Seite mit kleinerem |LoG| (die näher an null liegende) setzt.

Notes

Entlang jeder Achsrichtung werden zwei Arten von Nulldurchgängen erkannt:

(1) Durchgang zwischen Gitterpunkten — Vorzeichenprodukt a*b < 0 eines benachbarten Paares (a,b) (beide ungleich null, Vorzeichenwechsel). Um die Dicke gering zu halten, wird er dem 1 Voxel des Paares mit kleinerem |LoG| zugeordnet.

(2) Gitterausgerichteter Durchgang — das mittlere Voxel ist exakt null (L==0) und beide Nachbarn haben entgegengesetztes Vorzeichen (das Vorzeichen geht an diesem Voxel durch null). Bei einer echten Kante auf einer gitterausgerichteten Fläche wie einem SDF-artigen Gitter, wo der LoG genau auf einem Gitterpunkt 0 wird, ist a*b stets 0 und (1) übersieht sie; daher wird dieses Voxel als Durchgang gesetzt. Konstante Nullbereiche haben auch beide Nachbarn den Wert 0, also Lm*Lp==0, und werden ausgeschlossen (keine Fehldetektion).

In beiden Fällen wird numerisches Rauschen in ebenen Bereichen durch den relativen Schwellwert (rel_thresh * max|L|) unterdrückt.

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)

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

gradient3d · canny3d · link_edges · edge_points


*Provenance: edges3d.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.