geodesic op• Datenarten: points → indices
• Aufruf: import fullseye as fs; fs.ledger.farthest_point_sampling(points: numpy.ndarray, n: int, k: int = 8, start: int = 0) -> numpy.ndarray (die Implementierung direkt: import geodesic3d; geodesic3d.farthest_point_sampling(points: numpy.ndarray, n: int, k: int = 8, start: int = 0) -> numpy.ndarray; aus dem Register: ops3d.get("farthest_point_sampling"))
Farthest-Point-Sampling nach geodätischer Distanz (gleichmäßige Ausdünnung). → die Folge der gewählten Indizes (n,) int.
Ein Greedy-Verfahren (FPS), das start als ersten repräsentativen Punkt nimmt und jeweils 1 "Punkt mit dem größten geodätischen Abstand zur Menge der bereits gewählten Punkte" hinzufügt. Abstände werden mit Dijkstra auf dem ungerichteten kNN-Graphen von knn_graph(points, k) gemessen; der Abstand zur gewählten Menge wird als mind gehalten, das elementweise Minimum der Einzelquellen-Abstände der repräsentativen Punkte, und jedes Mal, wenn 1 repräsentativer Punkt hinzukommt, mit mind = min(mind, d_new) aktualisiert. Pro 1 repräsentativem Punkt läuft 1 Dijkstra, daher entspricht der Aufwand n Läufen kürzester Wege von einer Quelle. Es werden keine Zufallszahlen verwendet; deterministisch.
• points: (N,3)-Punktwolke. n: gewünschte Punktanzahl. Werte über N werden auf N gesetzt, negative auf 0 (0 ergibt ein leeres Array).
• k: Nachbaranzahl des kNN-Graphen (Standard 8). start: erster repräsentativer Punkt (mit start % N in den Bereich zurückgefaltet).
• Rückgabewert ist die Indexfolge in Auswahlreihenfolge (zuerst start). points[idx] liefert die repräsentativen Punkte.
Falle: Zerfällt der Graph in mehrere Zusammenhangskomponenten, haben unerreichbare Punkte den Abstand inf, sodass eine unerreichte Komponente zuerst gewählt wird (argmax greift inf). Das ergibt ein Verhalten "entfernte Haufen zuerst"; wer jede Komponente gleichmäßig ausdünnen will, trennt sie zuvor mit euclidean_cluster o. Ä.
• 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.
• geodesic_distance — py -3.11 examples_3d/geodesic_distance.py
• pointcloud_downsampling — py -3.11 examples_3d/pointcloud_downsampling.py
indices als Eingabe)geodesic)geodesic_distances · geodesic_mesh · 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.