欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Matlab保存与原图同样大小的图像

程序员文章站 2022-03-20 12:11:30
...

前言

使用matlab画完图后,直接保存图像就会遇到白边的问题
另外一个严重的问题是,假如我的图像矩阵是1024x1024,而通过画图后直接保存出来的图像往往也不是这个大小

解决办法

第一步

在当前路径下新建文件:saveas_center.m,直接将下面这段代码放在里面:

function saveas_center(h, save_file, width, height)
% saveas_center(h, save_file, width, height)

set(0,'CurrentFigure',h);

set(gcf,'PaperPositionMode','auto');
set(gca,'position',[0,0,1,1]);
set(gcf,'position',[0,0,500, 500]);
saveFigure = getframe(gcf);
saveFigure.cdata = imresize(saveFigure.cdata,[width,height]);
imwrite(saveFigure.cdata,save_file);

end

第二步

直接使用上面那个函数保存图像就可以啦
这里给出一个例子:

clear all;
x = imread('./img_name.png');
x = im2double(x);
x = squeeze(x(:,:,1));
h = figure(1);
colormap('parula');
imagesc(x);
saveas_center(h, './pic_example.png', size(x, 1), size(x, 2));