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
figure,imshow(GIm);
title('Grayscale Image');
Check out : Partially colored gray scale image - MATLAB CODE
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 ,
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');
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');
This looks nice.
ReplyDeleteHow 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???????????
ReplyDeletehow to convert gray scale image back to original image's true color?????????
ReplyDeletethanks 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
ReplyDeleteGIm(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........
ReplyDeletethank you :)
ReplyDelete@Ammayi Telugu
ReplyDeleteAccording 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
what if i want to convert whole image into grey scale except red pepper...can you guide me plz..
ReplyDeleteThanks in advance