This project implements the technique of color transfer between images as described in the paper by Erik Reinhard, Michael Ashikhmin, Bruce Gooch, and Peter Shirley. One of the most common tasks in image processing is changing the colors of an image. This article presents a more general color correction method, which borrows color characteristics from one image to apply to another. The algorithm follows these steps:

  1. RGB to ℓαβ color space conversion: The transformation of the RGB color space into the ℓαβ color space, where the axis represents the lightness channel, and the α and β channels represent the color-opponent yellow-blue and red-green channels, respectively.
  2. Statistical and color correction: First, the mean value is subtracted from each channel's data points. Then, the data points are scaled by factors determined by the standard deviation of each respective channel.
  3. Final conversion to RGB: The result is converted back into the RGB color space.

The MATLAB code for this procedure is contained in the color_transfer_built.m file. In lines 3 and 4 of the file, the source and target variables are modified to change the source and target images for color transfer.