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

*Figure synthetic 128×128 input पर सच में चलाकर मिला output है। बाईं ओर input, दाईं ओर output। Point clouds ऊपर से देखे गए scatter के रूप में (brightness = z), 1-D series line के रूप में, volumes z दिशा में maximum-intensity projection के रूप में, videos बीच के frame के रूप में, complex images amplitude के रूप में, और जो return values चित्र नहीं बन सकते वे स्वयं values के रूप में दिखाए जाते हैं।*
*Knob a output नहीं बदलता (मापा गया: 0.1 / 0.5 / 0.9 पर एक जैसा)।*
*Knob b output नहीं बदलता (मापा गया: 0.1 / 0.5 / 0.9 पर एक जैसा)।*
Stages (पहले आने वाले ops → यह op, बाएँ से क्रम में):
▸ tb_elastic_deform: stages का figure (docs site)
दूसरी images पर भी (synthetic scene / photo / coins। ऊपर की row में inputs, नीचे की row में उनके outputs। Knobs default पर):
▸ tb_elastic_deform: दूसरी images पर output (docs site)
smooth random displacement field से elastic deformation (correlation length sigma, RMS amplitude alpha)।
हर point पर एक स्वतंत्र Gaussian random vector रखा जाता है और spatial Gaussian weight exp(-d²/2σ²) से smoothing करके displacement field बनाया जाता है (पास के point coherent रूप से चलते हैं)। field को RMS 1 पर normalise करके फिर alpha से गुणा किया जाता है, इसलिए displacement का RMS norm ठीक alpha होता है (σ→∞ पर field constant = rigid body translation, σ→0 पर हर point स्वतंत्र)। non-rigid object deformation / लचीली वस्तुओं की training के लिए।
सावधानी (honest): neighbour search cKDTree.query_pairs(r=3σ) है। σ जितना cloud के व्यास के पास होता है, pair की संख्या उतनी O(N²) के पास पहुँचती है, इसलिए बड़े cloud में σ को local scale पर रखें।
sigma < 0 पर ValueError। sigma == 0 या केवल 1 point वाले cloud में smoothing नहीं होता और हर point का स्वतंत्र displacement होता है। alpha का validation नहीं होता (0 पर कोई displacement नहीं, ऋणात्मक पर field केवल उलट जाता है)। seed से deterministic। return value float64 (N,3) है, point की संख्या और क्रम बने रहते हैं (deformation से पहले और बाद का correspondence index से पता चलता है, इसलिए non-rigid registration की error सीधे मापी जा सकती है)। खाली input पर खाली लौटता है।
2-D evolution registry में bridge किया गया 3d का op elastic_deform। implementation वही है; केवल calling convention को op(v, a, b) के अनुरूप किया गया है। इस op में कोई tunable parameter नहीं है; न a उपयोग होता है, न b।
• 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 के स्रोत।
नीचे का program सच में चलता है, यह जाँचा गया है (figure वाला ही input)। Studio की help में यह block buttons बन जाता है, जिनसे इसे वहीं load करके चलाया जा सकता है।
img_to_points 0.50 0.50 tb_elastic_deform 0.50 0.50
▸ यह pipeline load करें · Load करके चलाएँ
नीचे के उदाहरण मूल ledger op elastic_deform को call करते हैं। यह bridge op वही implementation है, बस fn(v, a, b) convention के अनुसार ढाला गया है, इसलिए व्यवहार वैसा ही लागू होता है (केवल call का रूप अलग है)।
• sensor_seg — py -3.11 examples_3d/sensor_seg.py
points को input के रूप में लेते हैं)identity · 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
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.