matlab image processing

2 views (last 30 days)
parul
parul on 24 Mar 2012
Commented: Omkar Bhanap on 21 Feb 2018
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??
Omkar Bhanap
Omkar Bhanap on 21 Feb 2018
Is this command suitable for code generation purpose ??

Sign in to comment.

More Answers (2)

Sivakumaran Chandrasekaran
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 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
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.


Sivakumaran Chandrasekaran
Thanks Jan and Bjorn

Categories

Find more on Images in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!