HSV color space can
be used for assigning different colors to the foreground and background of the
same image conveniently in comparison to the equivalent RGB image. HSV color space
consists of 3 components namely the Hue, the Saturation and the Value.

In MATLAB, HSV color space of an image is three dimensional
matrix and each matrix represents each of the 3 component
(Hue,Saturation,Value). Hue and saturation range between zero and one. While saturation
defines colorfulness hue is specific to the color.

%MATLAB CODE:

A = imread('swimmer.jpg');

figure,imshow(A);title('Original
Image');

Original Image

HSV = rgb2hsv(A);

H = HSV(:,:,1); %Hue

figure,imshow(H);colorbar;

Hue

H( H > mean2(H) ) = 1;

HSV(:,:,1) = H;

C = hsv2rgb(HSV);

figure,imshow(C);title('Hue Modified');

Hue Modified

EXPLANATION:

The original image is in RGB format and it is converted to HSV color space
using the MATLAB command ‘rgb2hsv’. The resultant is a three dimensional matrix
with Hue, Saturation and Value components in each one of them. By comparing the
original RGB image and the Hue component, we can understand that the blue color
as high value comparing to other colors in the original image.

Hue is a color wheel, where the
colors start from red, then move on to yellow, green, cyan, blue, magenta and ends
up again in red.

In our example,the values above the average in
the Hue matrix is made 1.(i.e. red). The background of the image is changed
from blue to red.

If the whole image including the swimmer needs to
be changed to red then instead of finding the average or masking the image,
assign zero or 1 to Hue matrix.

After the modification, use
‘hsv2rgb’ command to return back to RGB color space.

%MATLAB CODE:

HSV = rgb2hsv(A);

S = HSV(:,:,2); %Saturation

figure,imshow(S);colorbar;

Saturation

S(:,:)=0;

HSV(:,:,2) = S;

C = hsv2rgb(HSV);

figure,imshow(C);title('Saturation
Modified');

Saturation Modified

EXPLANATION:

In this example, the saturation component is modified. The high values
of Saturation illustrates that the regions are bright and colorful while the
low values illustrates that they are dull and colorless.When saturation
matrix is made zero, the colorfulness is completely lost. The above figure
clearly shows the gray shade image that is obtained as a
result of modifying the saturation matrix.

%MATLAB CODE:

HSV = rgb2hsv(A);

H = HSV(:,:,1); %Hue

S = HSV(:,:,2); %Saturation

H( H > mean2(H) ) = 0.42;

S( H < mean2(H) )=0;

S( H >= mean2(H) )=1;

HSV(:,:,2) = S;

HSV(:,:,1) = H;

C = hsv2rgb(HSV);

figure,imshow(C);title('Saturation
Modified - Background');

EXPLANATION:

In this example, both the Hue and
the Saturation matrices are modified simultaneously. The background color is
changed from blue to green after changing the Hue matrix. The Saturation matrix
is changed partially such that the background is not affected but the color on
the swimmer is made gray.

%MATLAB CODE:

HSV = rgb2hsv(A);

H = HSV(:,:,1); %Hue

S = HSV(:,:,2); %Saturation

S( H < mean2(H) )=1;

S( H >= mean2(H) )=0;

HSV(:,:,2) = S;

HSV(:,:,1) = H;

C = hsv2rgb(HSV);

figure,imshow(C);title('Saturation
Modified - Foreground');

EXPLANATION:

In this example, the background
color is made shades of gray while the swimmer still retains the color. The
masking is done based on the foreground and background on the saturation matrix
and a value of zero is assigned to the background and one is assigned to
foreground. From this example, it is evident that if the saturation matrix contains
zero then the image in RGB color space will contain shades of gray whereas if
the saturation matrix contains one then it will contain fully saturated more
colorful image in the RGB color space.

The image(Figure.1) above shows the swimmer and different background
colors by modifying the Hue matrix.

Histogram
Equalization can be considered as redistribution of the intensity of the image.
Color histogram equalization can be achieved by converting a color image into
HSV/HSI image and enhancing the Intensity while preserving hue and saturation
components.

However, performing histogram equalization on components of R,G and
B independently will not enhance the
image. At the end of this post, check the histogram of before and after histogram equalization of an
image which is obtained by performing histogram equalization on the
components(R,G and B) independently.

RGB image matrix is converted into HSI(Hue
,Saturation and Intensity) format and histogram equalization is applied only on
the Intensity matrix . The Hue and Saturation matrix remains the same. The updated
HSI image matrix is converted back to RGB image matrix.