augment op• Data kinds: points → points
• Call: import fullseye as fs; fs.ledger.random_rotation(points, seed: 'int' = 0, max_angle: 'Optional[float]' = None) -> 'Tuple[np.ndarray, np.ndarray]' (implementation को सीधे call करना हो तो import pcl_augment; pcl_augment.random_rotation(points, seed: 'int' = 0, max_angle: 'Optional[float]' = None) -> 'Tuple[np.ndarray, np.ndarray]', registry से लेना हो तो ops3d.get("random_rotation"))
• Ledger के ज़रिए return value: fullseye.ledger.random_rotation(...) केवल घोषित out type points का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.random_rotation.raw(...) का उपयोग करें, या pcl_augment.random_rotation को सीधे call करें।
• मूल function का return: (points, R)
random rotation लागू करता है और (rotated, R) लौटाता है (viewpoint बदलाव की नकल)।
R orthonormal है और det=+1 (rotated = points @ R.T = हर point पर R बाईं ओर से लगता है, inverse transform rotated @ R है)। max_angle=None पर Shoemake विधि से uniform random rotation, max_angle देने पर (radian, अपेक्षित [0, π]) axis को sphere पर uniform और कोण को [0, max_angle] में uniform लेकर rotation कोण सीमित किया जाता है (arccos((tr R -1)/2) ≤ max_angle की सख्त गारंटी)।
max_angle < 0 पर ValueError, max_angle=0 पर identity matrix। unit radian है (degree में देने पर कई गुना बड़ा हो जाता है)। max_angle=None का uniform rotation ऊपरी सीमा π तक के बड़े rotation भी सामान्य रूप से देता है, इसलिए viewpoint बदलाव की सीमा घटानी हो तो max_angle इस्तेमाल करें। rotation origin के चारों ओर होता है, इसलिए cloud origin से दूर हो तो centroid भी हिलता है। R का convention rotated = points @ R.T register_fpfh और register_shot द्वारा लौटाए गए dst ≈ src @ R.T + t की ही दिशा में है, इसलिए estimate के साथ कोण की त्रुटि (error) arccos((tr(R_est·Rᵀ)-1)/2) से मापी जा सकती है। seed से deterministic (समान seed पर समान R)। return value float64 के (N,3) और (3,3) हैं।
• 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 के स्रोत।
• augment_pointcloud — py -3.11 examples_3d/augment_pointcloud.py
• sh_descriptor_retrieval — py -3.11 examples_3d/sh_descriptor_retrieval.py
• shape_retrieval — py -3.11 examples_3d/shape_retrieval.py
points को input के रूप में लेते हैं)points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d
augment)jitter · random_scale · random_dropout · elastic_deform · cutout
*Provenance: pcl_augment.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.