Accepted Answer

Image Analyst
Image Analyst on 23 Feb 2012

0 votes

rgbImage = uint8(cat(3, binaryImage, binaryImage, binaryImage));

7 Comments

I implemented the code..But what I am getting is a black block..What might be wrong?
Image Analyst
Image Analyst on 24 Feb 2012
Set a breakpoint right after that line, and issue these commands.
class(binaryImage) % Or whatever name you're using.
max(binaryImage(:)) % Note: no semicolons
min(binaryImage(:))
class(rgbImage)
max(rgbImage(:)) % Note: no semicolons
min(rgbImage(:))
What does it say?
Can you try showing it like this:
imshow(rgbImage);
Why do you want an RGB image anyway? If it's made from a binary image it will be just pure black and pure white anyway, just like your binary image looked like. It's not going to magically add a rainbow of colors to it simply by concatenating to convert into a 3D true color RGB image.
I tried combining with VHDL to reconstruct a colour image. That is why I wanted RGB image. Is there any other way for this conversion?
Image Analyst
Image Analyst on 25 Feb 2012
Well you could use ind2rgb() but you'd need to pass in a colormap. But why? Was the cat(3,) method not workable for some reason?
yeas, the cat(3) method wasnt working.
What was your exact line? Because I know it works since I've been doing it that way for years.
RGB=uint8(cat(3,y,y,y));
y is the binary image

Sign in to comment.

More Answers (0)

Categories

Tags

Community Treasure Hunt

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

Start Hunting!