Friday, 13 September 2013

Color Constancy Algorithms : Minkowski P Norm Method

Color Constancy Algorithms : Minkowski P Norm Method

Color Constancy

Color constancy is a mechanism of detection of color independent of light source. The light source many introduce color casts in captured digital images To solve the color constancy problem a standard method is to estimate the color of the prevailing light and then, at the second stage, remove it. Once the color of light in individual channels is obtained the each color pixel is normalized by a scaling factor . In the previous article we had looked at the gray world algorithm.The present article describes another method to achive color constancy using normalized minkowski p-norm.

normalized minkowski p-norm

Another variant to estimate illumination vector is to calculate the normalized minkowski p-norm for each color channel color constancy algorithm which is based on Minkowski norm - for each color channel, the Minkowski p-norm is calculated and the normalized result forms the estimated illumination vector.

The gray world algorithm is a special case of with norm =1.

\[ e_i = \left( \frac{1}{N} \sum_i p_i \right)^{1/p} \] where summation if over all the pixels.

The average illuminatio Gray world algorithm is obtained by setting p=1 The shades of gray, is given by Finlayson and Trezzi concluded that using Minkowski norm with p = 6 gave the best estimation results on their data set. One of the methods of normalization is that the mean of the three components is used as illumination estimate of the image. To normalize the image of channel i ,the pixel value is scaled by $s_1 = \frac{avg}{avg_i} $ where $avg_i$ is the channel mean and $avg$ is the illumination estimate .

Another method of normalization is normalizing to the maximum channel by scaling by $s_i$ \[ r_i = \frac{max(avg_R,avg_G,avg_B)}{avg_i} \]

Another method of normalization is normalizing to the maximum channel by scaling by norm $m_i$ \[ m_i = \sqrt{(avg_r*avg_r+avg_g*avg_g+avg_b*avg_b)} \] \[ r_i = \frac{max(m_R,m_G,m_B)}{m_i} \]

Below are some output images on which norm 6 was applied.
original
normalization method 1
normalization method 2
normalization method 3
Example 2.a1:minkowski norm 6
original
normalization method 1
normalization method 2
normalization method 3
Example 2.a2:minkowski norm 6
original
ld normalization method 1
normalization method 2
normalization method 3
Example 2.4:shades of gray
original
ld normalization method 1
normalization method 2
normalization method 3
Example 2.4:shades of gray
original
ld normalization method 1
normalization method 2
normalization method 3
Example 2.4:shades of gray
original
ld normalization method 1
normalization method 2
normalization method 3
Example 2.4:shades of gray
original
ld normalization method 1
normalization method 2
normalization method 3
Example 2.5:shades of gray
original
ld normalization method 1
normalization method 2
normalization method 3
Example 2.6:shades of gray
original
ld normalization method 1
normalization method 2
normalization method 3
Example 2.7:shades of gray
original
ld normalization method 1
normalization method 2
normalization method 3
Example 2.8:shades of gray
original
ld normalization method 1
normalization method 2
normalization method 3
Example 2.9:shades of gray
Some of the images are taken from http://research.edm.uhasselt.be/~oancuti/Underwater_CVPR_2012/ image set

Code

For code refer to site http://www.gihub.com/pi19404/m19404/master/ColorConstancy/ The files are color_constancy.cpp and color_constancy.hpp.

The class for applying color constancy using minkowski p norm technique

The norm factor is $p=1$ for gray world algorithm and $p=6$ for shades of gray algorithm . Various normalization techniques can be passed as $m=(1,2,3)$.