Saving an imagesc file as .png without the white borders?

43 次查看(过去 30 天)
I want to save a series of images that output in the format 'matlab.graphics.primitive.image' as PNGs without that white border PNGs save with. My code is below--is there any way to output these images cropped of their white border? I've already tried setting my 'iptsetpref' as 'tight', to no avail.
clc;clear all;
load('sphere.mat');
for j=80:90
I=imagesc(squeeze(sphere(:,j,:)));
set(gca,'XTick',[]);
set(gca,'YTick',[]);
filename=sprintf('sphere%d',j);
saveas(I,filename,'png');
end

回答(2 个)

Sudheer Bhimireddy
Try:
print(I,filename,'-dpng');
By white border if you mean the background outside the figure, then you would have to export it to epsc format
print(I,filename,'-depsc');

DGM
DGM 2022-8-3
编辑:DGM 2023-5-1
If you have an image and want to save the image, save the image. Don't display the image and then save a screenshot of the displayed image. Don't display the image and then take a photo of the monitor with your phone. Don't describe the image as a thousand words of poetry or as an interpretive dance.
Save the image array -- not the graphics object or the parent figure. Use imwrite(). Anything else is not just self-inflicted inconvenience; it's often destructive.
For saving arbitrarily-scaled data in scaled pseudocolor (as one would expect from imagesc()), See this example:
Again, this does not rely on figure capture.

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by