cutout — 3D augment op

• Data kinds: points → points

• Call: import fullseye as fs; fs.ledger.cutout(points, extent: 'Union[float, np.ndarray]', seed: 'int' = 0) -> 'Tuple[np.ndarray, np.ndarray]' (implementation को सीधे call करना हो तो import pcl_augment; pcl_augment.cutout(points, extent: 'Union[float, np.ndarray]', seed: 'int' = 0) -> 'Tuple[np.ndarray, np.ndarray]', registry से लेना हो तो ops3d.get("cutout"))

• Ledger के ज़रिए return value: fullseye.ledger.cutout(...) केवल घोषित out type points का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.cutout.raw(...) का उपयोग करें, या pcl_augment.cutout को सीधे call करें।

उपयोग

एक spatial axis-aligned box region हटाता है और (kept, kept_idx) लौटाता है (local missing data की नकल)।

मौजूदा points में से 1 को uniform sample करके केंद्र बनाता है, और भुजा लंबाई extent (scalar = घन, या (3,) = हर axis की भुजा लंबाई) वाले box के अंदर के सभी point हटाता है। केंद्र point खुद हमेशा अंदर होता है, इसलिए कम से कम 1 point हटता है। हटाए गए point हमेशा भुजा लंबाई extent वाले box में समाते हैं (spatially local = random बिखराव से अलग पहचाना जा सकता है)। kept == points[kept_idx], extent > 0।

extent में गैर-धनात्मक मान या (3,) के अलावा shape देने पर ValueError। खाली input पर खाली और खाली index लौटते हैं। केंद्र rng.integers(n) से चुना गया point है, इसलिए seed समान होने पर भी points का क्रम बदलने से कोई दूसरी जगह कटती है। box की जाँच |P - center| <= extent/2 का बंद अंतराल है। हटाए गए points की संख्या density पर निर्भर है; extent को cloud के आकार से बड़ा करने पर सभी point गायब हो जाते हैं। return value (kept float64 (M,3), kept_idx int64 (M,)) है, क्रम मूल जैसा। uniform कमी के लिए random_dropout।

संदर्भ (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 करते हैं)

• sensor_seg — py -3.11 examples_3d/sensor_seg.py

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

points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d

इसी category के (augment)

jitter · random_rotation · random_scale · random_dropout · elastic_deform


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