geodesic_distances — 3D geodesic op

• Datenarten: points → signal

• Aufruf: import fullseye as fs; fs.ledger.geodesic_distances(points: numpy.ndarray, source: int, k: int = 8) -> numpy.ndarray (die Implementierung direkt: import geodesic3d; geodesic3d.geodesic_distances(points: numpy.ndarray, source: int, k: int = 8) -> numpy.ndarray; aus dem Register: ops3d.get("geodesic_distances"))

Verwendung

Geodätische Distanzen von einer Quelle zu jedem Punkt (Dijkstra auf dem kNN-Graphen). → (N,) float (inf, wo unerreichbar).

Der mit knn_graph(points, k) erzeugte k-nächste-Nachbarn-Graph (Kantengewicht = Euclid-Abstand zwischen Punkten = Sehnenlänge) wird mit directed=False ungerichtet gemacht, und mit scipy.sparse.csgraph.dijkstra werden kürzeste Wege von einer Quelle gelöst. d[i] ist die Weglänge im Graphen von source zu Punkt i mit d[source] = 0; Punkte in Zusammenhangskomponenten, die nicht mit source verbunden sind, sind inf. Die Einheit ist die der Koordinaten.

• points: (N,3)-Punktwolke (in float64 umgewandelt).

• source: Index des Startpunkts (ganze Zahl in 0..N-1; außerhalb des Bereichs wirft scipy eine Ausnahme).

• k: Anzahl der Nachbarn (Standard 8). Zu klein zerteilt den Graphen und erhöht die inf; zu groß erzeugt "Abkürzungen", die entfernte Flächen direkt verbinden, sodass die Abstände nicht der Fläche folgen (Vorder- und Rückseite einer dünnen Platte, zurückgefaltete Flächen usw.).

Genauigkeit: Kanten sind Sehnenlängen, daher werden Bögen leicht unterschätzt, während Zickzack-Wege eine Überschätzung bewirken (siehe die Einschließungsabschätzung von Bernstein et al. im Modul- docstring). Liegt ein Dreiecks-Mesh vor, geodesic_mesh verwenden, das nicht von der Nachbaranzahl abhängt. Zum gleichmäßigen Ausdünnen nach diesem Abstand farthest_point_sampling.

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)

• geodesic_distance — py -3.11 examples_3d/geodesic_distance.py

Typkompatible Folge-Operatoren (nehmen signal als Eingabe)

fuse_to_voxel

Gleiche Kategorie (geodesic)

geodesic_mesh · farthest_point_sampling · knn_graph


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