tb_specular_coefficient_map — 2D typed op

• Data kinds: rgbimage → image

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

tb_specular_coefficient_map: input → output

*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_specular_coefficient_map: stages का figure (docs site)

दूसरी images पर भी (synthetic scene / photo / coins। ऊपर की row में inputs, नीचे की row में उनके outputs। Knobs default पर):

▸ tb_specular_coefficient_map: दूसरी images पर output (docs site)

उपयोग

dichromatic model का scalar interface (specular) coefficient। → (H, W)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

The same decomposition as specular_diffuse_split, returning the scalar m_s(x) instead of the coloured image m_s(x) * G. That scalar is what an inspection routine thresholds: it is the amount of light the surface reflected *as a mirror does*, in the units of the input radiance, and it is zero wherever the surface behaved as a Lambertian body.

specular_coefficient_map(...) * illuminant_unit equals the second return value of specular_diffuse_split exactly, by construction — the two operators share one core.

Arguments, guards and honest limits are identical to specular_diffuse_split — including the fact that the two guards bound gross violations only.

Raises ValueError: exactly the same conditions as specular_diffuse_split (invalid image, invalid illuminant, identically zero image, body colour parallel to the illuminant, either guard firing, fewer than 3 pixels on the uniform-body route, invalid *body_rgb*).

Typed bridge of the specular op specular_coefficient_map into the 2-D evolution registry: the same implementation, called under the op(v, a, b) convention. a drives max_rank_ratio (default 0.1) and b drives max_negative_frac (default 0.02).

संदर्भ (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 के स्रोत।

Studio में आज़माएँ

नीचे का program सच में चलता है, यह जाँचा गया है (figure वाला ही input)। Studio की help में यह block buttons बन जाता है, जिनसे इसे वहीं load करके चलाया जा सकता है।

img_to_rgb 0.50 0.50
tb_specular_coefficient_map 0.50 0.50

▸ यह pipeline load करें  ·  Load करके चलाएँ

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

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

• specular_photometric — py -3.11 examples/specular_photometric.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.