ransac_cylinder — 3D robust_fit op

Datenarten: points × normalsprimitive

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 ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.

円筒表面の法線は軸に直交するので、2 点の法線の外積で軸方向を推定 → 軸に直交な平面へ

全点を投影 → その平面内で円をフィット → |投影距離 - r| < `thresh` の inlier を

最大化。最終 inlier ではより頑健に軸を再推定(法線群の SVD の最小特異方向 = 軸)し、

投影円を最小二乗リフィットする。法線が無ければ呼び出し側で estimate してから渡す。

Args:

points: (N,3) 点群。

normals: (N,3) 各点の(単位)法線。

thresh: inlier とみなす |投影距離-r| のしきい値。

iters: RANSAC 反復数。

seed: 乱数シード(決定論)。

Returns:

(params, inlier_mask, info)。params = {"axis": (3,) 単位軸, "point": (3,) 軸上の一点,

"radius": float}。info には inlier 数 `n_inliers / 比 inlier_ratio / iters`。

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

blas_threads_and_memory — 行列分解が遅い理由の知識 — BLAS スレッド・キャッシュ・メモリ配置

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_primpy -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.