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?

matlab image processing

Asked by parul

parul (view profile)

on 24 Mar 2012

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

0 Comments

parul

parul (view profile)

Tags

Products

No products are associated with this question.

3 Answers

Answer by Jan Simon

Jan Simon (view profile)

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

parul (view profile)

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

Jan Simon (view profile)

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

Bjorn Gustavsson (view profile)

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

Jan Simon (view profile)

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.

Thanks Jan and Bjorn

0 Comments

Contact us