RGB Image to Grayscale Image without using rgb2gray function

A gray-scale image is composed of different shades of grey color.
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');











Check out : Partially colored gray scale image - MATLAB CODE

8 comments:

  1. 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?

    ReplyDelete
  2. how to convert gray scale image back to original true color???????????

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

    ReplyDelete
  4. 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

    ReplyDelete
  5. 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........

    ReplyDelete
  6. @Ammayi Telugu
    According to this equation, Red has contribute 30%, Green has contributed 59% which is greater in all three colors and Blue has contributed 11%
    This method is called weighted method.And this method gives the correct grayscale image

    Other method is 'Average method' in which (R + G +B)/3 is used to calculate the grayscale ; but this leads to incorrectness

    ReplyDelete
  7. what if i want to convert whole image into grey scale except red pepper...can you guide me plz..
    Thanks in advance

    ReplyDelete