fit_plane_3d — 3D geometry op

• Data kinds: points → primitive

• Call: import fullseye as fs; fs.ledger.fit_plane_3d(points) (implementation को सीधे call करना हो तो import match3d; match3d.fit_plane_3d(points), registry से लेना हो तो ops3d.get("fit_plane_3d"))

उपयोग

point cloud → least squares plane (point=centroid, normal=सबसे छोटा principal axis, residual RMS)। return value (point, normal, resid)।

(N,3) point cloud (column 3 न हों या 3 से कम बिंदु हों तो ValueError) का centroid c लेकर scatter matrix के सबसे छोटे eigenvalue के eigenvector को normal बनाता है (orthogonal दूरियों के वर्गों का योग न्यूनतम; resid = sqrt(λ_min/N) = plane से orthogonal दूरी का RMS)। normal unit vector है और चिह्न मनमाना है (बाहर की ओर करना हो तो viewpoint या centroid के संबंध के अनुसार उलटें)। 3 बिंदु हों तो plane ठीक उनसे गुजरता है और resid=0 (BLAS की ऋणात्मक rounding को 0 पर clamp किया जाता है)। बिंदु रेखा जैसे हों (2nd eigenvalue भी 0) तो normal अनिश्चित है। outlier के प्रति संवेदनशील (पहले ransac_plane / plane_segmentation से inlier निकालें)। केवल 3-D।

आगे: distance_point_plane / angle_between_planes / intersect_planes; height field की flatness के लिए surface_form_error(degree=1)।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• geometry_metrology — py -3.11 examples_3d/geometry_metrology.py

वे अगले ops जिनसे type जुड़ता है (primitive को input के रूप में लेते हैं)

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

इसी category के (geometry)

line_from_2points · plane_from_3points · angle_3points · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line


*Provenance: match3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.