matlab image processing

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

 Accepted Answer

Jan
Jan on 24 Mar 2012
r = rand(20, 30);
g = rand(20, 30);
b = rand(20, 30);
rgb = cat(3, r, g, b);

2 Comments

parul
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??
Is this command suitable for code generation purpose ??

Sign in to comment.

More Answers (2)

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

If you get pure gray it might be because your R G and B images are identical or close to identical?
Jan
Jan 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.

Sign in to comment.

Tags

Asked:

on 24 Mar 2012

Commented:

on 21 Feb 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!