robust_fit oppoints × normals → primitiveimport fullseye as fs; fs.ledger.ransac_cylinder(points, normals, thresh, iters=800, seed=0) (実装を直接呼ぶなら import ransac_fit; ransac_fit.ransac_cylinder(points, normals, thresh, iters=800, seed=0)、台帳から引くなら ops3d.get("ransac_cylinder"))外れ値に頑健な RANSAC 円筒適合(点法線が必要)。
円筒表面の法線は軸に直交するので、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。
py -3.11 examples_3d/ransac_prim.pyprimitive を入力に取れる)fuse_to_voxel · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line · distance_segment_segment
robust_fit)ransac_plane · ransac_sphere · ransac_line · fit_cone · fit_torus · fit_ellipsoid
Provenance: ransac_fit.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.