失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > matlab 去除图片坐标值和白边 并用saveas函数按需要分辨率(尺寸)保存

matlab 去除图片坐标值和白边 并用saveas函数按需要分辨率(尺寸)保存

时间:2023-01-29 11:07:09

相关推荐

matlab 去除图片坐标值和白边 并用saveas函数按需要分辨率(尺寸)保存

问题场景:

使用matlab生成训练图像,想将所画图像去除坐标值和白边,并按一定长宽(分辨率)输出,在这个过程中遇到了几个问题,记录一下解决过程。

用saveas函数输出指定256x256大小的图像

问题描述

首先相当的是利用图像句柄的‘Position’属性进行设置

set(gcf,'Position',[0,0,256,256]);set(gca,'Position',[0,0,1,1]);%去除白边axis off; %关闭坐标saveas(f,'pic0.png');

但查看输出图像却是400x400的,与想要的分辨率不同,就很疑惑,查看saveas函数的说明

说明saveas并不是按照设置的Position属性进行输出的,而是进行了转换,通过PaperPosition可以查看,因此我们查看这个属性。

在figure的属性中可以看到PaperPosition值,它的含义如下图所示:

于是可以通过PaperPositon的Width:6.7733cm,转换成英寸:

6.7733/2.54=2.6666inch6.7733/2.54=2.6666inch6.7733/2.54=2.6666inch

而saveas的分辨率是150dpi,150×2.6666=399.99 由此得到了400*400图像的形成经过。经过反推可以知道,想要得到分辨率256x256的图像,其PaperPosition的Width为

256/150=1.70667inch256/150 = 1.70667inch256/150=1.70667inch

对比两个PaperPosition的尺寸可以知道,将Position参数设置成

256∗1.706672.66667=163.8383256*\frac{1.70667}{2.66667}=163.8383256∗2.666671.70667​=163.8383

即set(gcf,‘Position’,[0,0,163.84,163.84])

观察结果

输出是256×256的,满足要求,并且是纯图、不包含横纵坐标。至此问题得到解决。

如果觉得《matlab 去除图片坐标值和白边 并用saveas函数按需要分辨率(尺寸)保存》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。