color_transfer — COLORTRANSPORT 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"))

Usage

Move the colour cast of src toward ref.

Parameters

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.

Returns

ndarray

sRGB [0, 1] of the same shape as src (out-of-gamut values are clipped).

Background guides (the physics and conventions behind this op)

• colorimetry — Colorimetry and spectra — colour is fixed only by spectrum × illuminant × observer

References (sample data, literature)

• 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.

Runnable examples (verified samples that actually call this op)

• color_transport — py -3.11 examples/color_transport.py

Ops the type connects to (they accept rgbimage as input)

—

Same category (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.