tb_keypoints_to_image2d — 2D typed op

• Data kinds: keypoints → image

• Call: fullseye.apply(img, "tb_keypoints_to_image2d", a=0.5, b=0.5) (2-D model = एक image + दो scalar knobs a,b∈[0,1])

*कोई figure नहीं: type तो पहुँचता है, पर सामान्य synthetic input इस op के domain में नहीं आता — 橋渡しで束縛した raster が 64×64 固定で、128×128 の点は外に落ちる। उपयोग का तरीका नीचे "चलाए जा सकने वाले उदाहरण" में देखें।*

उपयोग

image coordinates (N,2) = (u, v) → count image (H, W)। keypoints का दूसरा exit।

row round(v) और column round(u) पर 1-1 जोड़ा जाता है। pixel grid पर quantization ही loss है: keypoints_from_image2d के साथ round trip करने पर स्थिति अधिकतम 0.5 pixel खिसकती है (अच्छी तरह अलग 225 point पर मापा गया: हर axis पर RMS 0.2835 px = uniform quantization के सैद्धांतिक मान 1/sqrt(12) = 0.2887 से मेल। 2-D दूरी में यह sqrt(2) गुना, 0.4009 px है, सैद्धांतिक sqrt(2/12) = 0.4082)। ★यहाँ भी एक बार गलती हुई थी: 2-D दूरी के मापे गए मान को 1-D के सैद्धांतिक मान के साथ रखकर "0.29 होना चाहिए पर 0.40 है" पढ़ने ही वाले थे —— हर axis की मात्रा और दूरी की मात्रा को मिलाने से सही implementation गलत दिखने लगता है। पास-पास के point connected component के रूप में मिल जाते हैं, इसलिए round trip में point की संख्या भी घट सकती है (मापा गया: 60 point random रखने पर 54 point)।

range से बाहर के point चुपचाप हटाए नहीं जाते —— हटाने पर यह भेद नहीं हो पाता कि "detection घटे" या "image बहुत छोटी थी"।

Args:

keypoints: (N, 2) का (u, v)।

shape: (H, W)।

Returns:

(H, W) float64 count image।

Raises:

ValueError: गलत shape / non-finite / range से बाहर point मौजूद / shape सीमा से अधिक।

2-D evolution registry में bridge किया गया reprconv का op keypoints_to_image2d। implementation वही है; केवल calling convention को op(v, a, b) के अनुरूप किया गया है। इस op में कोई tunable parameter नहीं है; न a उपयोग होता है, न b।

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

नीचे के उदाहरण मूल ledger op keypoints_to_image2d को call करते हैं। यह bridge op वही implementation है, बस fn(v, a, b) convention के अनुसार ढाला गया है, इसलिए व्यवहार वैसा ही लागू होता है (केवल call का रूप अलग है)।

• representation_roundtrip — py -3.11 examples/representation_roundtrip.py

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

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

इसी category के (typed)

tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample


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

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