ransac_cylinder — 3D robust_fit op

• Datenarten: points × normals → primitive

• Aufruf: import fullseye as fs; fs.ledger.ransac_cylinder(points, normals, thresh, iters=800, seed=0) (die Implementierung direkt: import ransac_fit; ransac_fit.ransac_cylinder(points, normals, thresh, iters=800, seed=0); aus dem Register: ops3d.get("ransac_cylinder"))

Verwendung

Ausreißerrobuste RANSAC-Zylinderanpassung (Punktnormalen erforderlich).

Die Normalen einer Zylinderfläche stehen orthogonal zur Achse, daher wird die Achsrichtung aus dem Kreuzprodukt der Normalen von 2 Punkten geschätzt → alle Punkte werden auf die zur Achse orthogonale Ebene projiziert → in dieser Ebene wird ein Kreis gefittet → die Inlier mit |Projektionsabstand - r| < thresh werden maximiert. Auf den finalen Inliern wird die Achse robuster neu geschätzt (kleinste singuläre Richtung der SVD der Normalen = Achse), und der projizierte Kreis wird per kleinste Quadrate neu angepasst. Fehlen Normalen, schätzen Sie sie aufrufseitig, bevor Sie sie übergeben.

Args:

points: (N,3) Punktwolke.

normals: (N,3) (Einheits-)Normale jedes Punktes.

thresh: Schwellwert für |Projektionsabstand-r|, ab dem ein Punkt als Inlier gilt.

iters: Anzahl der RANSAC-Iterationen.

seed: Zufalls-Seed (deterministisch).

Returns:

(params, inlier_mask, info). params = {"axis": (3,) Einheitsachse, "point": (3,) ein Punkt auf der Achse,

"radius": float}. info enthält die Inlier-Anzahl n_inliers / den Anteil inlier_ratio / iters.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• blas_threads_and_memory — Warum Matrixzerlegungen langsam sind — BLAS-Threads, Caches, Speicherlayout

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)

• ransac_prim — py -3.11 examples_3d/ransac_prim.py

Typkompatible Folge-Operatoren (nehmen primitive als Eingabe)

fuse_to_voxel · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line · distance_segment_segment

Gleiche Kategorie (robust_fit)

ransac_plane · ransac_sphere · ransac_line · fit_cone · fit_torus · fit_ellipsoid


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