matching op• Data kinds: rgbimage × rgbimage → rgbimage
• Call: import fullseye as fs; fs.ledger.color_transfer(src, ref, method='reinhard', space='lab') (to call the implementation directly, import colortransport; colortransport.color_transfer(src, ref, method='reinhard', space='lab'); from the registry, opscolortransport.get("color_transfer"))
Move the colour cast of src toward ref.
src, ref : array_like
(..., 3) sRGB (float in [0, 1], or an integer dtype).
The sizes may differ (only statistics are used).
method : {"reinhard", "gaussian", "histogram"}
• "reinhard" —— matches only the mean and standard deviation of each channel (Reinhard, Ashikhmin, Gooch & Shirley, IEEE CG&A 21(5), 2001). It relies on the assumption that each channel is a unimodal normal distribution. On a bimodal picture with clearly separated foreground and background, the mean and variance match, yet the result is a colour that hits neither peak (no exception is raised).
• "gaussian" —— Monge map that transports the covariance as a whole. Correlation is preserved.
• "histogram" —— exact histogram matching per channel. The marginal distributions match perfectly, but the correlation between channels is destroyed.
space : {"lab", "rgb"}
The space in which the statistics are taken. The default lab uses the implementation in imgmetrics.
ndarray
sRGB [0, 1] of the same shape as src (out-of-gamut values are clipped).
• colorimetry — Colorimetry and spectra — colour is fixed only by spectrum × illuminant × observer
• 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.
• color_transport — py -3.11 examples/color_transport.py
rgbimage as input)—
matching)histogram_match · gaussian_transport_map
*Provenance: colortransport.py — COLORTRANSPORT 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.