tacscalib op• Data kinds: rgb × normalmap × image2d → table
• Call: import fullseye as fs; fs.ledger.lights_fit_from_sphere(diffs, normals, masks, order: 'int' = 0) -> 'dict' (to call the implementation directly, import tacscalib; tacscalib.lights_fit_from_sphere(diffs, normals, masks, order: 'int' = 0) -> 'dict'; from the registry, opsdrive.get("lights_fit_from_sphere"))
Solves a per-channel linear Lambertian model by least squares from background-subtracted images (1 image or a sequence) and known normals.
order=0: I_c = a_c + l_c · n (3 channels × 4 = 12 parameters). order=2 (for diagnosis): each of the 4 coefficients is a quadratic in position (24 per channel, 72 parameters in total) —— separates whether the residual of the linear model comes from "non-uniform illumination" or "non-linear reflection". diffs (H, W, 3) or a list of them, a list of normals (H, W, 3), a list of masks (H, W) bool.
Returns: order, L (3, 3) (row c = l_c, length = channel intensity; for order 2 the value at the image centre), ambient (3,), rms (3,) (fit residual), n_rows (number of pixels used), cond (condition number of the design matrix), and for order 2 coef (4, 6, 3) and image_shape. Raises ValueError: mismatched list lengths or shapes / order other than 0 or 2 / fewer pixels than unknowns / degenerate normals (on a plane).
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_tacscalib_sphere_lut — py -3.11 examples/poc_tacscalib_sphere_lut.py
table as input)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
tacscalib)calib_pack_load · sphere_normals_known · membrane_predict_rgb · gradient_lut_build · gradient_lut_invert · normal_error_map · sphere_cap_height · field_position_sweep
*Provenance: tacscalib.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.