I have a set of image data which is 256x256 matrix. I display the image data using the code below;
load topomatrix;
figure;
imshow(topomatrix,'displayrange',[]);
colormap('jet');
Now, I want to save the image with full display range and colormap, anyone know how to do it, is it using IMWRITE?
imwrite(topomatrix, 'topo.jpg');
Does anyone know how to do it, thank in advance!!!

 Akzeptierte Antwort

Image Analyst
Image Analyst am 8 Nov. 2014

0 Stimmen

You'll need to scale it and convert it to an 8 bit RGB image.
image8Bit = uint8(255 * mat2gray(topomatrix));
jetMap = jet(256);
imshow(image8bit);
colormap(jetMap);
rgbImageToSave = ind2rgb(image8Bit, jetMap);
imwrite(rgbImageToSave, 'rgbImage.png'); % Save as PNG to avoid jpeg artifacts.

4 Kommentare

TAY
TAY am 10 Nov. 2014
Thank you for your help it works well. Thanks
TAY
TAY am 17 Nov. 2014
hi, i have apply caxis to the colormap but when I save the image it still appear to be the same before I apply the caxis function, may I know how to solve this problem? Thank you.
Jane
Jane am 31 Okt. 2021
What do we do if we have a 3d matrix instead?
Image Analyst
Image Analyst am 31 Okt. 2021
If it has 3 planes/slices then you can use imwrite(). It will just consider it a color image. If you have more planes/slices, then either save each 2-D image separately or save the 3-D image into a .mat file.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by