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!!!

 採用された回答

Image Analyst
Image Analyst 2014 年 11 月 8 日

0 投票

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 件のコメント

TAY
TAY 2014 年 11 月 10 日
Thank you for your help it works well. Thanks
TAY
TAY 2014 年 11 月 17 日
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 2021 年 10 月 31 日
What do we do if we have a 3d matrix instead?
Image Analyst
Image Analyst 2021 年 10 月 31 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

質問済み:

TAY
2014 年 11 月 8 日

コメント済み:

2021 年 10 月 31 日

Community Treasure Hunt

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

Start Hunting!

Translated by