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

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by parul
on 24 Mar 2012

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

*No products are associated with this question.*

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);

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

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

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.

## 0 Comments