Color mapping

Color mapping is a function that maps (transforms) the colors of one (source) image to the colors of another (target) image. A color mapping may be referred to as the algorithm that results in the mapping function or the algorithm that transforms the image colors. Color mapping is also sometimes called color transfer or, when grayscale images are involved, brightness transfer function (BTF).

Color mapping example
Source image
Reference image
Source image color mapped using histogram matching

Algorithms

There are two types of color mapping algorithms: those that employ the statistics of the colors of two images, and those that rely on a given pixel correspondence between the images.

An example of an algorithm that employs the statistical properties of the images is histogram matching. This is a classic algorithm for color mapping, suffering from the problem of sensitivity to image content differences. Newer statistic-based algorithms deal with this problem. An example of such algorithm is adjusting the mean and the standard deviation of Lab channels of the two images.[1]

A common algorithm for computing the color mapping when the pixel correspondence is given is building the joint-histogram (see also co-occurrence matrix) of the two images and finding the mapping by using dynamic programming based on the joint-histogram values.[2]

When the pixel correspondence is not given and the image contents are different (due to different point of view), the statistics of the image corresponding regions can be used as an input to statistics-based algorithms, such as histogram matching. The corresponding regions can be found by detecting the corresponding features.[3]

Applications

Color mapping can serve two different purposes: one is calibrating the colors of two cameras for further processing using two or more sample images, the second is adjusting the colors of two images for perceptual visual compatibility.

Color calibration is an important pre-processing task in computer vision applications. Many applications simultaneously process two or more images and, therefore, need their colors to be calibrated. Examples of such applications are: Image differencing, registration, object recognition, multi-camera tracking, co-segmentation and stereo reconstruction.

gollark: > Circle is a new programming language that extends C++ 17 to support data-driven imperative metaprogramming. Circle combines the immediacy and flexibility of a scripting language with the type system, performance and universality of C++. Three new features make this a more effective programming tool than Standard C++:
gollark: https://www.circle-lang.org/
gollark: Solution: C++, but it's actually lisp.
gollark: I am not convinced that glvalue lambda expressions or whatever accursion C++ contains is worth it.
gollark: There's nothing wrong with a language being easier as long as you don't lose out on important things due to it.

See also

References


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.