typed op• Data kinds: qimage → rgbimage
• Call: fullseye.apply(img, "tb_quaternion_to_rgb", 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_quaternion_to_rgb: stages का figure (docs site)
दूसरी images पर भी (synthetic scene / photo / coins। ऊपर की row में inputs, नीचे की row में उनके outputs। Knobs default पर):
▸ tb_quaternion_to_rgb: दूसरी images पर output (docs site)
quaternion image का vector part, linear RGB के रूप में। → (H, W, 3)।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
The inverse of rgb_to_quaternion — and, by default, a *checked* inverse. A quaternion image that picked up a scalar component somewhere (a Hamilton product with a non-pure quaternion, a monogenic signal handed here by mistake) is refused rather than silently truncated, because dropping the w component is exactly the kind of loss that produces a plausible picture from the wrong data. Pass allow_scalar=True to opt in to the truncation when it is what you meant.
The tolerance is relative to the field's own peak modulus (_MONOGENIC_K_TOL, 1e-9): a quaternion image that really is pure carries |w| at the 1e-17 level after a round trip through two FFTs, and anything with a meaningful scalar part is many orders above that. Nothing real lives in between.
Raises ValueError: *qimage* is not a finite (H, W, 4) array; or it has a non-negligible scalar part and allow_scalar is False.
Typed bridge of the quat op quaternion_to_rgb into the 2-D evolution registry: the same implementation, called under the op(v, a, b) convention. This op has no tunable parameter; a and b are unused.
• 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_rgb 0.50 0.50 tb_rgb_to_quaternion 0.50 0.50 tb_quaternion_to_rgb 0.50 0.50
▸ यह pipeline load करें · Load करके चलाएँ
नीचे के उदाहरण मूल ledger op quaternion_to_rgb को call करते हैं। यह bridge op वही implementation है, बस fn(v, a, b) convention के अनुसार ढाला गया है, इसलिए व्यवहार वैसा ही लागू होता है (केवल call का रूप अलग है)।
• quaternion_monogenic — py -3.11 examples/quaternion_monogenic.py
rgbimage को input के रूप में लेते हैं)identity · tb_wetness · tb_sensor_capture · tb_specular_diffuse_split · tb_specular_coefficient_map · tb_specular_free_transform · tb_rgb_to_quaternion
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.