MATLAB Answers


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




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

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

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


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


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 Academy

New to MATLAB?

Learn MATLAB today!