A RGB image contains three components. Namely: Red, Blue and
Green.

The below figure represents various colors and their
corresponding RGB (Red , Green and Blue) component values.

Gray scale value of the above RGB components:

A gray scale image can be formed from a RGB image by taking the
sum of 29.89% of pixel value of Red component, 58.70% of pixel value of green
component and 11.40% of pixel value of Blue component.

For instance, consider the second shade with values [150 9
22] from the color vector.

The corresponding gray scale value = (150*0.2989)+(9*.5870)+(22*.1140)

= 52.62

= 53 (approximately)

Consider the gray scale values 61 ,106 and 83 from the
gray scale vector.

If the gray scale value is updated in the RGB components of
the colored vector then that particular shade will be in gray scale as shown
below.

The value 61 is updated in Red, Green and Blue
components. Similarly, 106 and 83 are also updated.

Using this principle, we can use both RGB and gray color in
a single image to obtain a partially colored gray scale image.

Let us now learn how to obtain partially colored gray scale
image.

1.
Read an RGB Image

2.
Store the Red component in matrix R, Green in matrix
G and Blue in matrix B.

**Step 2:**Define the Grayscale Image

1.
Convert RGB Image to Grayscale Image (GS)

2.
Create a matrix R1, G1 and B1 of the same size
of matrix R, G and B

3.
Update the matrices R1,G1 and B1 with the value
of the matrix GS

**Step 3:**Create a Mask

1.
Create a matrix of size GS

2.
Update the pixel positions with one if the pixel
position should be RGB else zero or vice versa.

**Step 4:**Find the index of the masked positions from the Mask

**Step 5:**Create partial color and gray scale

1.
Obtain the Red component (R) for the
corresponding index of the mask and update it in the R1 matrix. Similarly,
update the other matrices G1 and B1 with values of G and B matrices based on
the index of the mask.

2.
Create a Three dimensional matrix of the same
size of RGB Image

3.
Update the three dimensional matrix with the R1,
G1 and B1 components. This is the required partially coloured gray scale image.

**Step 6:**Display the partially colored gray scale image

**MATLAB CODE:**

%Read a RGB image

A = imread('watch1.jpg');

R = A(:,:,1); %RED
component

G = A(:,:,2); %GREEN
component

B = A(:,:,3); %BLUE
component

%RGB to Gray scale Image

GS = rgb2gray(A);

R1 = GS;

G1 = GS;

B1 = GS;

%Mask - Circle

wndow =
uint8((gausswin(size(A,1),12)*gausswin(size(A,2),7)')*255);

wndow = ~wndow;

%Find Index

X = find(wndow==0);

R1(X) = R(X);

G1(X) = G(X);

B1(X) = B(X);

%Create a RGB matrix

C = zeros(size(A));

C(:,:,1) = R1;

C(:,:,2) = G1;

C(:,:,3) = B1;

C = uint8(C);

figure,imshow(C);

The mask can also be
created manually as shown below: