【问题标题】:Distortion while saving matlab figure as a eps file将matlab图形保存为eps文件时失真
【发布时间】:2014-07-10 03:11:02
【问题描述】:
saveas(gcf,'result.pdf');

使用上述命令将我的图形输出到 eps 文件后,我得到了以下结果。

但是,实际的图如下。

我尝试过使用其他命令,例如

saveas(gcf, 'result.eps');
print -depsc myplot.eps

甚至是'export_fig'库,但仍然无法获得正确的图形输出。

有谁知道这个问题的关键点在哪里?谢谢。


[更新]

按照dpwe的评论,放大图后.eps的结果是这样的

原来的图是这样的

是的,它们看起来更像!

【问题讨论】:

  • 看来问题可能来自光栅化 2048 行。你能否放大前 200 行,以便我们可以准确地看到每个像素的行为?屏幕显示通常只是子样本,但 eps 输出可能会尝试平均。
  • 感谢您的建议,我已经更新了您提到的数字。而且,据我所知,屏幕显示和eps输出之间的不同采样方法可能正是导致这种现象的原因吧?
  • 看起来像。您必须小心绘制每个元素占用少于一个物理像素的图像。这实际上是一个混叠问题——为了获得更好的保真度,您需要先对图像进行低通滤波,然后再对最终显示进行(不可避免的)下采样。看起来好像原始 eps 输出在某种程度上是这样做的。

标签: matlab pdf figure eps distortion


【解决方案1】:

saveas 函数使用默认大小来保存图形,我认为它类似于屏幕分辨率的 3/4。您可以通过查看图像中的像素数来弄清楚(无论如何都是 png)。如果你运行

set(gcf,'Position',[a b c d]);
saveas(gcf, 'result.eps');

将图形的大小调整为 saveas 在保存之前用来保存它的大小,这可能会有所帮助。

【讨论】:

  • 是的,调整图形大小后,matlab图形和eps输出的差异要小得多。我认为这正是@dpwe 上面所说的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2016-12-19
  • 2016-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多