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

matlab image processing

Asked by parul on 24 Mar 2012

How to merge the r,g and b components to get a single rgb image in matlab???

0 Comments

parul

Tags

Products

No products are associated with this question.

3 Answers

Answer by Jan Simon on 24 Mar 2012
Accepted answer
r = rand(20, 30);
g = rand(20, 30);
b = rand(20, 30);
rgb = cat(3, r, g, b);

1 Comment

parul on 27 Mar 2012

Actually the thing is that we have r an b components of same dimension i.e. 148*114*3 but the g component is having 148*114 dimension.So,if we are adjusting its dimension,and then merging using the "cat" command,then we are getting a complete gray image.What to do in this case??

Jan Simon
Answer by Sivakumaran Chandrasekaran on 24 Mar 2012

hi jan, r = rand(20, 30); g = rand(20, 30); b = rand(20, 30); rgb = [r, g, b]; imshow(rgb)

 thats my code.. could you explain me whats the different between your code and mine. I am getting gray image as output. But,you are getting colored one. could you explain this technically. why i am not getting color image even though i concatenated those three basic colors.

Regards, Siva

2 Comments

Bjorn Gustavsson on 24 Mar 2012

If you get pure gray it might be because your R G and B images are identical or close to identical?

Jan Simon on 24 Mar 2012

[r,g,b] is equivalent to cat(2, r, g, b): It concatenates along the 2nd dimension. Try it with smaller values to keep the overview:
r=[1,2;3,4]; g=r+5; b=g+5;
disp([r,g,b])
disp(cat(3, r, g, b))
The concatenation along the 2nd dimension creates a 2D matrix of type double, which is displayed as grey scale image.

Sivakumaran Chandrasekaran
Answer by Sivakumaran Chandrasekaran on 27 Mar 2012

Thanks Jan and Bjorn

0 Comments

Sivakumaran Chandrasekaran

Contact us