User:Simonas.d

Color normalization is a method to compensate illumination  in the image, without loosing ability to distinguish between objects of interest, mostly used in  computer vision  for image pre-processing. Some areas where color normalization is of high interest, include: object localization and classification, video manipulation and indexing. Image illumination can change due to various disturbances, such as, scene lighting or capture device characteristics. Color normalization does not try to find/restore true color of the image but, instead, transforms the color to make it invariant to illumination changes. Some of the proposed methods are: greyworld normalization, comprehensive color normalization (or greyworld normalization), histogram equalisation, histogram specification. The performance and different approaches are discussed into detail in the following papers.

Comprehensive Color Normalization
Comprehensive Color Normalization was implemented as described by Finlayson, et al. . It is used to remove image dependency on lighting geometry and illumination color and can be achieved by iterative two-stage calculations. The steps are repeated until no more significant changes follow.

Image is given by: $${{f}^{(t)}}={{[{{f}_{ij}}^{(t)}]}_{i=1...N,j=1...M}}$$ and color vectors in the image: $${{f}_{ij}}^{(t)}={{(r_{ij}^{(t)},g_{ij}^{(t)},b_{ij}^{(t)})}^{T}}$$
 * normalize pixel color intensity
 * $${{S}_{ij}}:=r_{ij}^{(t)}+g_{ij}^{(t)}+b_{ij}^{(t)}$$


 * and from that we can compute normalized pixel intensities:


 * $$r_{ij}^{(t+1)}=r_{ij}^{t}/{{S}_{ij}}$$


 * $$g_{ij}^{(t+1)}=g_{ij}^{t}/{{S}_{ij}}$$


 * $$b_{ij}^{(t+1)}=b_{ij}^{t}/{{S}_{ij}}$$


 * normalization is done for each color channel, where the sum of the color values is equal to $$1/3$$ of the number of pixels
 * $$r'=\frac{3}{N\cdot M}\cdot \sum\nolimits_{i=1}^{N}{\sum\nolimits_{j=1}^{M}{r_{ij}^{(t)}}}$$


 * and from the latter final values can be obtained


 * $$r_{ij}^{(t+2)}=r_{ij}^{(t+1)}/r'$$, where same is done for $$g'$$ and $$b'$$ channels.

The final values should shout: r + g + b = 1

Histogram specification
The histogram specification method uses histograms for each color space channel and tries to match them to the specific histograms. Differently from histogram equalisation, histogram specification does not distort original image colors and final image looks more close to the source.