typed op• Datenarten: points → volume
• Aufruf: fullseye.apply(img, "tb_euclidean_cluster", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])

*Die Abbildung ist die tatsächliche Ausgabe auf einer synthetischen 128×128-Eingabe. Links Eingabe, rechts Ausgabe. Punktwolken als Draufsicht-Streudiagramm (Helligkeit = z), 1-D-Reihen als Linie, Volumen als Maximum-Projektion entlang z, Videos als mittleres Bild, komplexe Bilder als Betrag; Rückgabewerte, die kein Bild ergeben, werden als Werte gezeigt.*
*Regler a ändert die Ausgabe nicht (gemessen: identisch bei 0,1 / 0,5 / 0,9).*
*Regler b ändert die Ausgabe nicht (gemessen: identisch bei 0,1 / 0,5 / 0,9).*
Stufen (die vorangehenden Ops → dieser Op, von links nach rechts):
▸ tb_euclidean_cluster: Stufen (Doku-Website)
Auf anderen Bildern (synthetische Szene / Foto / Münzen. Obere Reihe: Eingaben, untere Reihe: deren Ausgaben. Regler auf Standard):
▸ tb_euclidean_cluster: andere Eingaben (Doku-Website)
Bewegung (GIF: Bilder / Ansichten / Schnitte nacheinander. Die stehende Abbildung ist die vollständige; das GIF ist ergänzend):

Distanzbasiertes Clustering über die Zusammenhangskomponenten eines Nachbarschaftsgraphen mit Radius tol (-1 = Rauschen).
Punkte innerhalb von tol zueinander werden (transitiv) zu einem Cluster gebündelt. Räumlich getrennte Objekte werden zu getrennten Clustern (dient nach der Bodenentfernung dazu, zu trennen, "welcher Klumpen ein greifbares Objekt ist"). Zusammenhangskomponenten kleiner als min_size gelten als Rauschen, -1. Labels sind 0,1,2,... absteigend nach Clustergröße (deterministisch).
Args:
points: (N,3)-Punktwolke.
tol: Nähe-Radius für denselben Cluster (Abstand, muss > 0 sein).
min_size: Zusammenhangskomponenten darunter sind Rauschen (-1).
Returns:
labels: (N,) int. 0..(n_clusters-1) sind Cluster, -1 ist Rauschen. Leere Eingabe ergibt shape (0,).
Die 3d-Op euclidean_cluster, in die 2-D-Evolutionsregistry überbrückt. Die Implementierung ist dieselbe; nur die Aufrufkonvention ist an op(v, a, b) angepasst. a variiert min_size (Standard 10). b wird nicht verwendet.
• 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.
Das Programm unten ist nachweislich lauffähig (gleiche Eingabe wie die Abbildung). In der Studio-Hilfe wird dieser Block zu Schaltflächen, die es sofort laden und ausführen.
img_to_points 0.50 0.50 tb_euclidean_cluster 0.50 0.50
▸ Diese Pipeline laden · Laden & ausführen
Die folgenden Beispiele rufen den zugrunde liegenden Ledger-Op euclidean_cluster auf. Dieser Brücken-Op ist dieselbe Implementierung, angepasst an die Konvention fn(v, a, b); das Verhalten gilt unverändert (nur die Aufrufform unterscheidet sich).
• object_segmentation — py -3.11 examples_3d/object_segmentation.py
volume als Eingabe)identity · vol_gaussian · vol_median · vol_erode · vol_dilate · vol_threshold · vol_reg_dilate · vol_reg_erode
typed)tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample
*Provenance: ops.py — 2D 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.