Converting an image with size of [X, Y, 3, double] to another image with size of [X, Y, 3, uint8]
Mostrar comentarios más antiguos
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?
Respuestas (1)
Matt Tearle
el 18 de Mzo. de 2011
Assuming the double image has values between 0 and 1,
A2 = uint8(255*A1);
4 comentarios
Walter Roberson
el 18 de Mzo. de 2011
That doesn't give equal weight to the values. The below does:
A2 = uint8(A1 * 256 - 1/2)
Seymour
el 28 de Mzo. de 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
el 28 de Mzo. de 2011
repmat(I,[1 1 3]);
Walter Roberson
el 28 de Mzo. de 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.
Categorías
Más información sobre Convert Image Type en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!