gradient_lut_build — DRIVE tacscalib op

• Data kinds: matrix × matrix → table

• Call: import fullseye as fs; fs.ledger.gradient_lut_build(rgb_rows, normal_rows, bins: 'int' = 125, positions=None, image_shape=None, flat_rgb=None, flat_positions=None, min_rows_poly: 'int' = 30, ridge: 'float' = 0.001, pool: 'bool' = True) -> 'dict' (implementation को सीधे call करना हो तो import tacscalib; tacscalib.gradient_lut_build(rgb_rows, normal_rows, bins: 'int' = 125, positions=None, image_shape=None, flat_rgb=None, flat_positions=None, min_rows_poly: 'int' = 30, ridge: 'float' = 0.001, pool: 'bool' = True) -> 'dict', registry से लेना हो तो opsdrive.get("gradient_lut_build"))

उपयोग

example-based gradient LUT: normal के (tilt θ, दिशा φ) को bins × bins में बाँटता है, और हर bin में आने वाले pixels के RGB का औसत रखता है (np.add.at से दोहराए indices भी सब जोड़े जाते हैं)। rgb_rows (P, 3), normal_rows (P, 3)।

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

positions((P, 2) = (行, 列))と image_shape を与えると位置依存版: min_rows_poly 行以上のビンに RGB = 6 係数 · [x², y², xy, x, y, 1] を当てる(x, y は画像寸法で −1..1、定数項以外に小さなリッジ)。pool=True なら行の少ないビンは角度で最も近い多項式ビンの位置の項(5 係数)を借り、定数項だけを自分の行の平均に合わせる —— 位置の項を当てたビンだけで引くと傾きの小さいビンが全部落ちて 0〜15° が不感帯になる(試作で踏んだ罠)。flat_rgb((F, 3)、位置つきなら flat_positions (F, 2) も)は「平らな例」= 法線 (0, 0, 1) として足す行(接触から遠い輪など、弱い真値)。

返り: bins、mean_rgb (bins, bins, 3)(空のビンは nan)、count (bins, bins)、centre_normals (bins, bins, 3)、n_rows、n_flat、coef ((bins, bins, 6, 3) か None)、basis("unit")、image_shape、poly_bins・ pooled_bins(位置の項を当てた / 借りたビンの数)。Raises ValueError: 形の不一致 / bins < 4 / min_rows_poly < 6 / 行が 0 / 非有限 / positions と image_shape の片方だけ / flat_positions だけ。

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

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

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

• poc_tacscalib_sphere_lut — py -3.11 examples/poc_tacscalib_sphere_lut.py

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

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

इसी category के (tacscalib)

calib_pack_load · sphere_normals_known · lights_fit_from_sphere · membrane_predict_rgb · gradient_lut_invert · normal_error_map · sphere_cap_height · field_position_sweep


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

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