【matlab】export_fig 去掉白边、保存图像

论文需要一些matlab性能图。由于期刊要求,保存matlab图片之前需对其进行去白边处理,并且尽量保存为eps和pdf等格式,以便在论文中高质量显示。

开始,我使用在网上搜到的代码命令(如下):

set(gca, 'Position', get(gca, 'OuterPosition') - ...
get(gca, 'TightInset') * [-1 0 1 0; 0 -1 0 1; 0 0 1 0; 0 0 0 1]);

通过这个代码,我发现能够很好的去除一些方形图像(即长宽比一样的情况)的白边。

但本次论文中需长宽比不一样的图像,并且有些图像还需要响应强度标注,我发现上述的命令在上述两种情况下不能够很好的去除白边。

为解决此问题,我后来又看了很多论坛和方法,比较靠谱的做法就是改变上述矩阵中的参数。但是,对于一个只是想画几张图的我而言,了解矩阵中的每个参数是什么含义是见费时的工作,我也在网上找过没有什么具体的说明。于是我放弃使用上面的方法。偶然的一个机会,我在网上搜到了关键词export_fig,于是终于找到了今天这里要介绍的保存图像神器export_fig函数。

----------------------------分割线---------------------------------------

下面,我具体说一下export_fig的使用,其实很简单。只是希望对于一些和我有类似需要的同学不在为如何去白边、如何保存eps图像纠结。

一、下载的软件

首先,提供一下expor_fig需要的一些链接链接:

export_fig链接:http://www.mathworks.cn/matlabcentral/fileexchange/23629-exportfig

ghostscript链接:http://www.ghostscript.com ;

Xpdf链接:http://www.foolabs.com/xpdf(下面两个链接为生成eps\pdf格式的图片必要的插件,如果不需要生成这两种格式的图片可以不预装);

当然,由于下面两个链接需要链接到国外的服务器,下载可能会出现速度慢、不能够成功下载等问题。这里也给大家提供了一个三个链接打包下载的链接供一些省事的家伙使用。

打包下载链接:http://download.csdn.net/detail/connor_lele/7007825

二、安装说明

为了大家省事,且能够像matlab自带函数一样长期使用这个函数包。我这里给了如果正确配置这个软件包的方法。

首先,安装ghostscript,并记住安装路径下bin文件的位置。其次,记住Xpdf文件中bin32文件的位置。

其次,将export_fig放在硬盘上一个固定的位置,如Matlab安装的路径,并记住它的位置。然后,运行matlab,在matlab命令行中敲下如下命令:

addpath(genpath(PathExportFig)); %将export_fig的路径加入到matlab中,这样如果我们之后运行export_fig函数matlab就会自动找到这个函数;

savepath; %将上述路径永远加入matlab,这样我们不用怕每次关闭matlab或者电脑后又重新输入上述命令。

接着,我们可以随便显示一个图像,用如下命令将图像保存为jpg格式;

export_fig 'E:\test' '.jpg';%'test'为保存图片的路径和名字,'.jpg'为保存图片的格式;

通过运行,我们发现E盘下会出现一张我们需要的图像test.jpg。但是,如果我们将上述命令改为如下:

export_fig 'E:\test' '.eps';

可能会出现一个对话框提示找不到ghostscript或者Xpdf,此时我们只需要将对话框中的路径索引到上面我说的他们存在的路径即可。如果路径索引正确后,我们再次运行时就会不再出现上述提示,此时E盘下面也将出现我们要求的test.eps文件。

三、使用说明

我们会发现使用上述函数保存的图像已经自动将白边去除,而且无论图像的长宽比是什么样的都无所谓。通过这个函数我很快完成了需要的图。


其实,这种东西都是非常简单简单的,只是由于接触的少,我们不了解罢了。但是当我们需要这样一个功能时可能会出现素手无策的情况。因此,我希望这样一个简单的分享能够让大家减少一些不必要的工作量。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
MATLAB生成达到出版质量的形-export_fig.zip 本帖最后由 stellari 于 2013-5-28 16:03 编辑 MATLAB的绘功能非常强大,但是有两个突出的问题:1、导出的片质量不高;2、有时导出片和figure中实际所见并不一致。所以导致大家正式发表专业文章时不经常用MATLAB作为首选的绘软件。其实,只要解决了上面的两个问题,MATLAB也是可以生成能够达到出版水平的形的。 简介 export_fig (见附件) 就是一个能够解决上述问题的工具包。首先,问题1的主要原因是MATLAB的默认绘渲染器较为原始,所以画出的线条都有很明显的锯齿。而用export_fig导出的片,所有的线条和文字都是经过抗锯齿处理的,所以视觉效果极佳;至于问题2,export_fig会严格按照figure上显示的内容去导出,是真正意义上的所见即所得。而且用export_fig导出的片不会有MATLAB默认导出时那么大的白边,而是保证白边的范围仅能容纳坐标轴和title,xlabel,ylabel,这样使得片的尺寸减小,排版更方便。下两选得虽然不是很有代表性,但是依然可以看出export_fig截出的白边大量减少,并且有非常先进的抗锯齿处理(比如,上的红线在1-2范围内有很明显的锯齿,下则几乎没有。坐标轴上的数字也是如此)。背景中的网格也由虚线变成了“淡实线”,更符合现代制的审美观。 figure中直接选择save的结果: test1_1.png figure中选择save的保存结果 export_fig的结果: test2_2.png export_fig保存结果 使用方法 export_fig的使用方法很简单,解压附件中的文件,然后将得到的所有文件放入某目录中,再将该目录添加至MATLAB的搜索路径中。导出片时,输入 export 文件名 即可将当前figure中的输出至文件中。export_fig能够自动识别文件名的扩展名,并保存成相应的格式。 注意 如果需要导出pdf或eps格式的话,需要下载并安装ghostscript,具体可以参见export_fig的发布页 http://www.mathworks.com/matlabc ... nge/23629-exportfig 题外话 其实不要小看MATLABMATLAB其实隐藏了一个非常强大的绘模式: HG2。这个模式平时是隐藏的,只能在MATLAB启动时通过附加参数的形式开启,即可以将MATLAB的快捷方式中的指向目标由 "...\...\MATLAB\R2013a\bin\MATLAB.exe" 改为 "...\...\MATLAB\R2013a\bin\MATLAB.exe" -hgVersion 2 (注意hgVersion 和 2 之间有一个空格) 然后使用这个快捷方式打开MATLAB。在界面上没有任何区别,但是当你画出之后,你会发现一切都不同了。 (下二转载自undocumentedmatlab.com,左为普通模式,右为HG2模式) HG1_plot.png 普通(HG1)模式(无责任转载自undocumentedmatlab.com) HG2_plot.png HG2模式(无责任转载自undocumentedmatlab.com) 版本在2010以上,感兴趣的同学不妨一试(版本更早其实也可以尝试)。当然目前HG2模式尚不稳定,所以并没有向一般用户公开。不过这很可能是下一代MATLAB的发展方向,说不定R2014a的默认绘模式就是HG2! 总结 目前公认最好的片导出方案还是export_fig。这个工具包在MATLAB Central上一直下载量排行第一。这个工具包可以完全替代MATLAB自己的片导出功能,强烈推荐大家使用。我本人现在正在写的一篇文章就全部使用export_fig,而没有使用其他任何的绘软件。 HG2模式应该是MATLAB的未来发展方向,大家可以先尝个鲜。很有可能在不久的将来就能够在MATLAB中直接生成这种高质量的图像了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值