Converting an image with size of [X, Y, 3, double] to another image with size of [X, Y, 3, uint8]
Afficher commentaires plus anciens
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?
Réponses (1)
Matt Tearle
le 18 Mar 2011
Assuming the double image has values between 0 and 1,
A2 = uint8(255*A1);
4 commentaires
Walter Roberson
le 18 Mar 2011
That doesn't give equal weight to the values. The below does:
A2 = uint8(A1 * 256 - 1/2)
Seymour
le 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
le 28 Mar 2011
repmat(I,[1 1 3]);
Walter Roberson
le 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.
Catégories
En savoir plus sur Convert Image Type dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!