探索Matlab图像导出工具export_fig的无损输出技术

版权申诉
0 下载量 78 浏览量 更新于2024-11-10 收藏 94KB ZIP 举报
资源摘要信息:"Matlab图片导出无失真库export_fig" Matlab是一种用于数值计算、可视化以及编程的高级语言和交互式环境。其在工程计算、控制系统设计、信号处理、图像处理、神经网络、仿真等领域都有广泛的应用。在进行科研工作或数据可视化时,经常需要将Matlab绘制的图形导出为图片,而保持图形质量无失真是一项重要的需求。为此,Matlab社区中有一个名为“export_fig”的库,它专门用于解决这一需求。 export_fig是一个Matlab函数,可以导出高质量的图形图像,包括矢量图和位图,适合在学术出版物或演示中使用。该函数可以导出为多种文件格式,包括但不限于:EPS、PDF、PNG、TIFF、JPEG、BMP等。使用此函数能够得到具有高质量线条和文字描述的图片,对于复杂的图形和图表来说,这是一项非常实用的功能。 export_fig库中包含多个函数文件: - export_fig.m:这是主要的导出函数,用户通过调用这个函数可以直接导出图形。 - print2eps.m:用于将图形导出为EPS格式的辅助函数。 - print2array.m:将Matlab图形转换为数组格式,便于进一步处理。 - eps2pdf.m:将EPS格式的文件转换为PDF格式。 - ghostscript.m:调用GhostScript软件来处理PDF和EPS文件,确保输出的文件质量。 - im2gif.m:将图像转换为GIF格式的辅助函数。 export_fig库使用起来非常简单,只需在Matlab命令窗口中输入导出命令,然后指定文件名和格式即可。例如,使用以下代码导出当前图形为PDF文件: ```Matlab export_fig('figure1.pdf'); ``` export_fig库支持丰富的导出选项,能够调整图片的分辨率、边距、背景色等属性。这样用户可以根据需要自定义导出的图片效果。对于具有复杂图形或需要高分辨率的图片,export_fig可以有效避免常规导出方法中的失真问题。 除了export_fig库,Matlab还提供了其他导出图形的方法,如使用Matlab自带的print命令也可以导出图形,但往往无法达到export_fig的导出质量。此外,Matlab中的图形导出质量也受限于当前的图形窗口配置,例如线条宽度和字体渲染等。 export_fig库能够很好地弥补这些不足,它提供的各种设置选项使得用户可以更精细地控制输出图片的质量。尤其是对于科研工作者来说,导出无失真图片对结果的展示和共享至关重要,能够确保图片在不同平台和设备上的显示效果一致。 不过,值得注意的是,要使用export_fig库,需要在Matlab环境中安装GhostScript软件。这是因为某些高级导出功能依赖于GhostScript进行后处理,比如将EPS转换为PDF。用户需要确保GhostScript软件的安装路径已添加到Matlab的系统路径中,否则export_fig可能无法正常工作。 总结来说,Matlab图片导出无失真库export_fig是一个非常实用的工具,尤其适合需要进行高质量图形输出的科研人员和工程师。它能够导出高分辨率、无失真的图片,同时提供多种格式选择和丰富的导出选项,是Matlab用户进行图形输出的理想选择。
2019-08-14 上传
用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 题外话 其实不要小看MATLAB。MATLAB其实隐藏了一个非常强大的绘图模式: 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中直接生成这种高质量的图像了。