Converting an image with size of [X, Y, 3, double] to another image with size of [X, Y, 3, uint8]
Show older comments
I have an image with size [X, Y, 3, double] and I need to convert this image to another image with same size but uint8 type data i.e the size will be [X, Y, 3, uint8]. I Can anyone help me?
Answers (1)
Matt Tearle
on 18 Mar 2011
Assuming the double image has values between 0 and 1,
A2 = uint8(255*A1);
4 Comments
Walter Roberson
on 18 Mar 2011
That doesn't give equal weight to the values. The below does:
A2 = uint8(A1 * 256 - 1/2)
Seymour
on 28 Mar 2011
Hey, thanks for the answer but I guess I need another solution similar to this. Now I have an image and when it is read by matlab; its dimensions are like this:<1038x1392 uint8>
I need this image with the sizes of <1038x1392x3 uint8>. I tried to do something similar to your previous answer but could not manage it. I appreciate if you help me. Thanks
Sean de Wolski
on 28 Mar 2011
repmat(I,[1 1 3]);
Walter Roberson
on 28 Mar 2011
If you read in an image and it is two dimensional, then unless it is a gray-scale image, it has an associated color map. To convert gray-scale images to equivalent RGB, easiest probably what Sean de showed; to convert pseudocolor images to rgb images, you use ind2rgb() specifying the image and the colormap to lock in.
Categories
Find more on Convert Image Type in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!