A true color image can be converted to a gray scale image by preserving the luminance(brightness) of the image.

Here the RGB image is a combination of RED, BLUE AND GREEN colors.

The RGB image is 3 dimensional. In an image ,

at a particular position say ( i,j)

Image(i,j,1) gives the value of RED pixel.

Image(i,j,2) gives the value of BLUE pixel.

Image(i,j,3) gives the value of GREEN pixel.

The combination of these primary colors are normalized with R+G+B=1;

This gives the neutral white color.

The grayscale image is obtained from the RGB image by combining 30% of RED , 60% of GREEN and 11% of BLUE.

This gives the brightness information of the image. The resulting image will be two dimensional. The value 0 represents black and the value 255 represents white. The range will be between black and white values.

MATLAB CODE:

Im=imread('peppers.png');

figure,imshow(Im);

title('Original Image');

%0.2989 * R + 0.5870 * G + 0.1140 * B

GIm=uint8(zeros(size(Im,1),size(Im,2)));

for i=1:size(Im,1)

for j=1:size(Im,2)

GIm(i,j)=0.2989*Im(i,j,1)+0.5870*Im(i,j,2)+0.1140*Im(i,j,3);

end

end

%Without using for loop:

%GIm=0.2989*Im(:,:,1)+0.5870*Im(:,:,2)+0.1140*Im(:,:,3);

figure,imshow(GIm);

title('Grayscale Image');

## 5 comments:

This looks nice.

How do you show just one of the colours? Let's say that you turn a picture into grayscale, but want to keep the blue color?

how to convert gray scale image back to original true color???????????

how to convert gray scale image back to original image's true color?????????

thanks too much.....after convertng how to plot histogram and cumulative histogram and how to verify that we got correct results by ensuring that final value in the cumulative histogram equals to the number of pixels in the image

GIm(i,j)=0.2989*Im(i,j,1)+0.5870*Im(i,j,2)+0.1140*Im(i,j,3);----------------i coudnt get this can any can one can explain this........

## Enjoyed Reading? Share Your Views