gradient_lut_invert — DRIVE tacscalib op

• 資料種類:rgb × table × image2d → normalmap

• 呼叫: import fullseye as fs; fs.ledger.gradient_lut_invert(rgb, table: 'dict', mask=None, min_count: 'int' = 1, method: 'str' = 'coarse', coarse: 'int' = 3, topk: 'int' = 2, chunk: 'int' = 1024) -> 'np.ndarray'(要直接呼叫實作,import tacscalib; tacscalib.gradient_lut_invert(rgb, table: 'dict', mask=None, min_count: 'int' = 1, method: 'str' = 'coarse', coarse: 'int' = 3, topk: 'int' = 2, chunk: 'int' = 1024) -> 'np.ndarray';從台帳取用則 opsdrive.get("gradient_lut_invert"))

用法

RGB (H, W, 3) → 法線 (H, W, 3):在非空 bin(count ≥ min_count)中取顏色最接近者的中心法線。位置相依版的表(向 gradient_lut_build 傳入 positions 所得)先依像素位置預測各 bin 的顏色,再進行比較。

method="coarse"(預設):在每個 coarse × coarse bin 的區塊放一個代表(列數最多的 bin),選出顏色最近的前 topk 個區塊,只在各自周圍 3 × 3 區塊內比較全部 bin(粗 → 細)。"exact":全部 bin 窮舉(基準)。顏色 → 法線是多峰的(相距很遠的 bin 顏色幾乎相同),因此粗 → 細與窮舉不一定選中同一個 bin:在第 1 台實機上約 9 成一致,不一致的像素其角誤差中位數也幾乎相同(由門測量)。mask 之外為 (0, 0, 1)。min_count 是所用 bin 列數的下限:無雜訊的合成資料取 1 即可,但在實機上只有 1 列的 bin (第 1 台的 24 張校正圖中有 624 個)其顏色平均就是雜訊本身,維持 1 會使還原的深度偏 +18 %(列數 10 以上為 +6 %)。反之,只在擬合了位置項的 bin 中查找(min_count=min_rows_poly)則傾斜 0〜15° 成為盲區。Raises ValueError:形狀 / mask 的形狀 / method 拼寫錯誤 / coarse·topk·chunk 小於 1 / 可用 bin 為 0 / 位置相關版中影像大小不同。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• poc_tacscalib_sphere_lut — py -3.11 examples/poc_tacscalib_sphere_lut.py

型別可銜接的下一個運算子(可接受 normalmap 作為輸入)

spin_from_marker_sequence · carla_transform_matrix · carla_pose_to_world · carla_camera_pose · carla_xy_yaw · carla_scene_load · town_chain · osm_parse

同類別(tacscalib)

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


*Provenance: tacscalib.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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