matlab 图像保存时去除白边
很是讨厌MATLAB输出图像时自带的白边,尤其是当导出.eps格式时,很难通过编辑图片来去掉白边。网上有很多代码但是没有注释,有很多坑要填。这里提供一个去除白边的代码,自己在别人的基础上修改了而且加了注释。
MATLAB 坐标图
XLabel -- 标签
Title -- 标题
XTick -- 刻度线
XTickLable -- 刻度标签
下图显示了一个二维视图,其中 OuterPosition 值定义红色区域、Position 值定义蓝色区域,TightInset 值定义的品红色区域到蓝色之间的阴影区域。

OuterPosition和Position是一个四元素的向量:[left bottom width height],均为0-1的小数,且均相对于整个绘图区域来说的,即figure的大小。
这四个值的作用:left和bottom确定左下角的坐标,即[0.25 0.25]表示左下角在1/4处,width和height确定区域所占的高度和宽度,[0.5 0.5]表示区域的高度和宽度为整个绘图区域的一半。[0.25 0.25 0.5 0.5]表示将区域的长和宽设为整个绘图区域的一半并放在正中间(自己计算一下位置就知道)。
TightInset是也是一个四元素的向量,但是有些区别:[left bottom right top],其代表的是左下右上四个方向上的Position的margin,也就是Lable和Title所在区域(即阴影区域),其值也是0-1的小数,且均相对于整个绘图区域来说的。TightInest是只读属性,故只能通过设置Position来改变图像区域大小。
去白边代码
%%%%%%%%%%%%%%%%%%%%%%
% fn -- 图像,可通过“f=figure;”获得
% fan -- 图像坐标,可通过“fa=gca”获得
%%%%%%%%%%%%%%%%%%%%%%
f=[f1 f2 f3 f4]; % 四个不同图像
axs = [fa1,fa2,fa3,fa4]; % 四个不同图像的坐标对象
for i=1:4
% 图像保存去掉白边代码
ax = axs(i); % 获取一个坐标对象
set(ax,'LineWidth',1.5); % 设置坐标线宽
% set(ax, 'FontWeight','bold');
figure_FontSize=12; % 设置一个字号变量,方便统一更改
set(get(ax,'XLabel'),'FontSize',figure_FontSize); % 设置标签字号
set(get(ax,'YLabel'),'FontSize',figure_FontSize);
% 通过findobj更改对象的属性
set(findobj(get(ax,'Children'),'LineWidth',0.5),'LineWidth',1.5);
set(findobj('FontSize',10),'FontSize',figure_FontSize);
grid(ax,'on'); % 网格开
set(ax,'GridLineStyle',':','GridColor','k','GridAlpha',0.3); % 网格样式
% 删除白边的主体代码
% 注意在删除白边之后不可以再调整字号等属性,否则会将图像上的边缘上的内容剪裁掉
outerpos = ax.OuterPosition; % 获取外部框位置
ti = ax.TightInset; % 获取内容框位置
left = outerpos(1) + ti(1); % 把Position的left值设为左边margin的值
bottom = outerpos(2) + ti(2); % 把Position的bottom值设为右边margin的值
ax_width = outerpos(3) - ti(1) - ti(3); % 设置对应的宽度
ax_height = outerpos(4) - ti(2) - ti(4); % 设置对应的高度
ax.Position = [left bottom ax_width-0.01 ax_height-0.01]; % 可以微调一下,以保证边缘没有被剪裁掉。
fig = f(i);
fig.PaperPositionMode = 'auto';
fig_pos = fig.PaperPosition;
fig.PaperSize = [fig_pos(3)+1 fig_pos(4)+1];
end
% 保存图像为eps格式,psc2表示支持彩色
saveas(f1,'plot_img/example1.eps','psc2');
saveas(f2,'plot_img/example2.eps','psc2');
saveas(f3,'plot_img/example3.eps','psc2');
saveas(f4,'plot_img/example4.eps','psc2');
另外,如果保存的eps文件出现放大后模糊的问题,原因可能有两个:
- 图像中存在透明性质的点:取消透明即可
- 渲染方式为opengl:
set(gcf, 'Renderer', 'Painters');更改渲染方式。
matlab 图像保存时去除白边的更多相关文章
- matlab 和 origin作图去除白边,字体调节
一 matlab作图 (1)在图形文件figure的菜单上点击file->export setup, 在size选项中,对"expand axes to fill figure&quo ...
- matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
转自:http://blog.csdn.net/fx677588/article/details/53301740 1. matlab图像保存说明 matlab中读取图片后保存的数据是uint8类型( ...
- matlab 图像的保存
gcf:获取当前显示图像的句柄: 默认 plot 的 position 是 [232 246 560 420] 0. save >> A = randn(3, 4); >> B ...
- source insight 保存时删除多余空格,去除多余空格 space tab键
source insight 保存时删除多余空格,去除多余空格 space tab键 摘自:https://blog.csdn.net/lanmanck/article/details/8638391 ...
- source insight 保存时删除多余空格,去除多余空格 space tab键【转】
转自:http://blog.csdn.net/lanmanck/article/details/8638391 上传源码时最好把空格行去掉,以前介绍了使用notepad++,现在发现,习惯用sour ...
- PHP《将画布(canvas)图像保存成本地图片的方法》
用PHP将网页上的Canvas图像保存到服务器上的方法 2014年6月27日 歪脖骇客 发表回复 8 在几年前HTML5还没有流行的时候,我们的项目经理曾经向我提出这样一个需求:让项目评审专家们在评审 ...
- VScode 格式化代码保存时使用ESlint修复代码
前言 eslint vs code 新买的电脑啊啊西 装VScode 配置格式化代码保存时使用ESlint修复代码头快炸了,不建议初学者用,太费时间了: 终于搞定---再也不要担心缩进,函数(名)和 ...
- sublime text保存时删除行尾空格
打开sublime text,点击在Preferences, Settings-User打开的用户配置中加入以下一行: "trim_trailing_white_space_on_save& ...
- eclipse编辑jsp快捷键保存时特别卡的解决方法
今天eclipse用着用着的时候,每次编辑jsp页面快捷键保存的时候要等半天才保存好,特别的卡.搞的很蛋疼.上网搜了下有解决办法 Window -> Preference -> Gener ...
随机推荐
- Java基础系列(41)- 冒泡排序
冒泡排序 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知 我们看到的嵌套循环,应该立马就可以得出这个算法的时间复 ...
- php CURL 发送http请求 GET POST
* CURL http://www.php.net/manual/en/book.curl.php http://jp2.php.net/manual/en/function.curl-setopt. ...
- 鸿蒙内核源码分析(进程回收篇) | 老父亲如何向老祖宗临终托孤 ? | 百篇博客分析OpenHarmony源码 | v47.01
百篇博客系列篇.本篇为: v47.xx 鸿蒙内核源码分析(进程回收篇) | 临终前如何向老祖宗托孤 | 51.c.h .o 进程管理相关篇为: v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁在管 ...
- P7323-[WC2021]括号路径【并查集,启发式合并】
正题 题目链接:https://www.luogu.com.cn/problem/P7323 题目大意 给出\(n\)个点的一张有向图.每个边\((u,v,w)\)表示\(u->v\)有一个类型 ...
- 2017年第二届广东省强网杯线上赛WEB:Musee de X writeup(模板注入漏洞)
目录 解题思路 总结 解题思路 拿到手上,有四个页面 首先按照题目要求执行,尝试注册一个名为admin的账户 这种情况,路径都给出来了,很可能就是目录遍历或者文件上传了 回到初始界面,点击链接here ...
- Three 之 Animation 初印象
Animation 初印象 动画效果 播放动画需要基本元素 AnimationMixer 一个对象所有动作的管理者 用于场景中特定对象的动画的播放器.一个对象可能有多个动作,Mixer 是用来管理所有 ...
- 设计模式如何提升 vivo 营销自动化业务扩展性 | 引擎篇01
在<vivo 营销自动化技术解密 |开篇>中,我们从整体上介绍了vivo营销自动化平台的业务架构.核心业务模块功能.系统架构和几大核心技术设计. 本次带来的是系列文章的第2篇,本文详细解析 ...
- AI 事件驱动场景 Serverless 实践
作者 | 李鹏(元毅) 来源 | Serverless 公众号 一.事件驱动框架:Knative Eventing 事件驱动是指事件在持续事务管理过程中,进行决策的一种策略.可以通过调动可用资源执行相 ...
- 数据应用的变与不变,ShardingSphere 正在影响未来数字体验的建设理念
近年来关于底层数据库的开源产品越来越多,它们也受到了许多资本的青睐. 伴随着移动互联网催生的数字化场景爆发,云计算.大数据等技术逐渐有了更加广阔的应用场景.在云计算和大数据经过十年的追赶式发展后,不只 ...
- Centos7最小安装后快速初始化脚本
功能说明 服务器通常使用最小化安装操作系统,使用该脚本可快速初始化一些基本配置,包括以下: 1.ssh修改默认端口 2.ssh禁止root登陆 3.selinux及firewalld禁用 4.hist ...