Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

how to convert gray image to color image

Asked by Sivakumaran Chandrasekaran

Sivakumaran Chandrasekaran

on 25 Aug 2012
Latest activity Commented on by fereshte

fereshte

on 24 May 2014
Accepted Answer by venkat vasu

venkat vasu

Image=imread('fog1.bmp');
[m n r]=size(Image)
rgb=zeros(m,n,3);
rgb(:,:,1)=Image;
rgb(:,:,2)=rgb(:,:,1);
rgb(:,:,3)=rgb(:,:,1);
Image=rgb/255;
figure,imshow(Image);

I am getting error in the line rgb(:,:,1)=Image;

Can anyone tell whats the error

2 Comments

Image Analyst

Image Analyst

on 25 Aug 2012

Siva, you've been asking enough questions here that you should learn how to format lines as code. Here's a tip: Just simply highlight the lines of code and click the {}Code icon above the text box. That will format it so that we will see it properly. I've done it for you this time but try to do it yourself next time - it's not hard. Thanks!

Thanks Image Analyst. I shall follow it

Sivakumaran Chandrasekaran

Sivakumaran Chandrasekaran

4 Answers

Answer by venkat vasu

venkat vasu

on 25 Aug 2012
Edited by Walter Roberson

Walter Roberson

on 26 Aug 2012
Accepted answer
Image=imread('fog1.bmp');
if size(Image,3)==3
    Image=rgb2gray(Image);
end
[m n r]=size(Image);
rgb=zeros(m,n,3); 
rgb(:,:,1)=Image;
rgb(:,:,2)=rgb(:,:,1);
rgb(:,:,3)=rgb(:,:,1);
Image=rgb/255; 
figure,imshow(Image);

Try this code...

1 Comment

venkat vasu

venkat vasu

Answer by Titus Edelhofer

Titus Edelhofer

on 25 Aug 2012

Hi,

what's the value of r? One? Or three? I guess your Image is already an RGB image, only that R, G and B are always equal (and therefore you have gray) ...

Titus

2 Comments

Image Analyst

Image Analyst

on 25 Aug 2012

So the proper code would most likely be:

rgbImage = imread('fog1.bmp');
[rows columns numberOfColorChannels] = size(rgbImage);
if numberOfColorChannels == 1
  % It's monochrome, so convert to color.
  rgbImage = cat(3, rgbImage, rgbImage, rgbImage);
end
imshow(rgbImage);

Thanks Image Analyst

Titus Edelhofer

Titus Edelhofer

Answer by fereshte

fereshte

on 24 May 2014

hi,i tested all codes in this post for my image.but output was gray image.why?

4 Comments

fereshte

fereshte

on 24 May 2014

thanks.for jpg images, this code return me color image but for bmp color image give me graye image. original images are color(red.green.blue).i apply them in my code but output images were gray!! i use above codes to convert them to color image but output was gray image again.how correct it?

Image Analyst

Image Analyst

on 24 May 2014

Please post your image and your code as a new question.

fereshte

fereshte

on 24 May 2014

ok

fereshte

fereshte

Contact us