match_points_ncc — 3D match_localize op

• Data kinds: points × points → position

• Call: import fullseye as fs; fs.ledger.match_points_ncc(pts_scene, pts_model, size, bounds, device='cpu', smooth=0.8) (implementation को सीधे call करना हो तो import match3d; match3d.match_points_ncc(pts_scene, pts_model, size, bounds, device='cpu', smooth=0.8), registry से लेना हो तो ops3d.get("match_points_ncc"))

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

• GPU: इस op का GPU path है (device="cuda")

उपयोग

point cloud से point cloud matching (structure=point cloud × method=NCC, conversion=splat)। model को scene के अंदर locate करता है।

प्रक्रिया: pts_scene और pts_model को समान bounds=(lo,hi) और size के साथ points_to_voxel (σ=smooth voxel की smoothing सहित) से गुज़ारा जाता है; model की तरफ > 5%·max का bbox काटकर template बनाया जाता है, और accel_match.ncc_locate_3d से NCC localisation किया जाता है। Return value [NCC, z, y, x] float64 है (NCC ∈ [−1,1]; position voxel index है, ±2 neighbourhood के centroid से subvoxel)।

• Position बताती है कि काटे गए bbox template का center scene voxel में कहाँ पड़ता है। world coordinates पर लौटने के लिए

lo + idx/(size−1)·(hi−lo) (points_to_voxel का grid)।

• bounds आवश्यक है (_lo_hi से validate होता है; अमान्य होने पर ValueError)। अगर range दोनों clouds को शामिल न करे, तो range के बाहर के

points किनारे के voxel पर clip हो जाते हैं।

• model के voxel पूरे 0 हों तो [0,0,0,0]।

• केवल translation। rotation और scale को पहले match_pca / match_logpolar_z से मिलाएँ।

आगे: icp_point2point_3d का init_t, refine_translation_lk।

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

• matching_localize — py -3.11 examples_3d/matching_localize.py

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

refine_peak_newton · refine_translation_lk · refine_lm · fuse_to_voxel

इसी category के (match_localize)

match_shape_3d · match_chamfer_3d · match_curvature_3d · match_hough_3d · match_mip_2d


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