Convert matrix of RGB double values to image

26 views (last 30 days)
I have a matrix which contains RGB values which range from 0 to 1. I would like to turn it into an image, but if I use uint8 the image appears black. How do I do this conversion correctly? Note I am not looking for help displaying my RGB image, but rather getting my data into a type that Matlab interprets to be an image for use with functions like insertInImage.
rgbMatrix = rand(100,200,3); % Matrix of doubles containing values ranging from 0-1
figure;
imshow(rgbMatrix); % Shows a colorful image
title('Image in color, as desired')
figure;
imshow(uint8(rgbMatrix)); % Shows an all-black image
title('Image incorrectly shown as all black')

Accepted Answer

KAE
KAE on 2 Jul 2019
Edited: KAE on 2 Jul 2019
I just realized the following works, but please let me know if I am losing information by converting to uint8,
figure;
imshow(uint8(rgbMatrix*255)); % RGB images should be in the 0-255 range, not 0-1
title('Colorful image, as expected')

More Answers (0)

Community Treasure Hunt

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

Start Hunting!