symmetry op• Data kinds: points → measurement
• Call: import fullseye as fs; fs.ledger.reflection_symmetry_score(points, plane_point, plane_normal) (implementation को सीधे call करना हो तो import symmetry3d; symmetry3d.reflection_symmetry_score(points, plane_point, plane_normal), registry से लेना हो तो ops3d.get("reflection_symmetry_score"))
reflection symmetry score = chamfer(mirrored, मूल) / median nearest-neighbour spacing (जितना छोटा उतना symmetric, scale-invariant)। → float।
reflect_points से point cloud को plane में mirror करता है, और मूल point cloud से symmetric Chamfer distance (chamfer_distance:
दोनों दिशाओं की nearest neighbour दूरियों के औसत का औसत) को मूल point cloud की nearest neighbour spacing के median से भाग देता है। यह "mirror image मूल points से point spacing के कितने गुना हटा है" वाली dimensionless मात्रा है, इसलिए coordinates को किसी स्थिरांक से गुणा करने पर भी मान नहीं बदलता।
• points: (N,3) point cloud। plane_point / plane_normal: candidate plane (normal अंदर normalise होता है)।
• fail-closed: point cloud खाली हो, (N,3) न हो (chamfer_distance ValueError देता है), या सभी points एक ही हों जिससे spacing परिभाषित न हो (ValueError)। केवल जब duplicate points के कारण median spacing 0 हो, तब centroid से RMS radius × 1e-12 को निचली सीमा बनाया जाता है।
पढ़ते समय ध्यान दें: पूरी तरह symmetric आकार में भी mirror किए गए points मूल sample points पर ठीक-ठीक नहीं पड़ते, इसलिए score 0 नहीं होता, और point spacing के आसपास निचली सीमा बनती है (मापे गए मान detect_reflection_symmetry की table में देखें)। threshold से स्वीकार/अस्वीकार तय करने के बजाय, कई candidates sweep करें और न्यूनतम मान तथा 2nd स्थान से उसका अंतर (margin) देखें। PCA के 3 axes के अलावा candidate planes आज़माने हों तो इस function को plane parameters पर सीधे sweep करें।
• 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 के स्रोत।
• dl_mesh_symmetry — py -3.11 examples_3d/dl_mesh_symmetry.py
• reflection_symmetry — py -3.11 examples_3d/reflection_symmetry.py
measurement को input के रूप में लेते हैं)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
symmetry)detect_reflection_symmetry · detect_rotational_symmetry · reflect_points
*Provenance: symmetry3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.