如何删除PDF图像中的抗锯齿?

时间:2013-11-15 22:11:11

标签: image pdf acrobat antialiasing abbyy

我使用Abbyy FineReader for ScanSnap来OCR扫描几个扫描的PDF文件。该软件声称它保留了原始的PDF图像。前OCR和后OCR的PDF文件大小几乎相同,这很好。

软件完成后,所有PDF图像在Acrobat X中都显示消除锯齿。页面导航比以前慢得多,当我放大/缩小时,图像首先进入看起来像预抗锯齿的样子快速更改为抗锯齿图像之前的版本。

Left: Scanned PDF / Right: after OCR with Abbyy enter image description here

我想获得没有抗锯齿的原始图像。有趣的是,当我在Photoshop中打开抗锯齿PDF的单页时,没有抗锯齿,图像看起来像左图。

我有限的PDF编程经验让我相信Abbyy可能会在OCR处理期间为每个图像设置某种抗锯齿标记。我如何取消设置此标志?

非常感谢任何有用的想法。

2 个答案:

答案 0 :(得分:2)

  

软件完成后,所有PDF图像在Acrobat X中都显示消除锯齿。页面导航比以前慢得多,当我放大/缩小时,图像首先进入看起来像预抗锯齿的样子快速更改为抗锯齿图像之前的版本。

实际上,原始文件2013_11_15_22_51_31.pdf包含JPEG图像,而OCR文件2013_11_15_22_51_31_OCR.pdf包含JPEG2000图像。

在第三方观看者中比较它们,很明显OCR文件中的图像本身并不是反别名的。此外,PDF中没有明显的标志指示PDF查看器将抗锯齿应用于JPEG2000图像。因此,Adobe Reader似乎会自动呈现不同的JPEG和JPEG2000图像,对后者应用抗锯齿,但不对前者应用抗锯齿。

虽然比较了两个图像,但很明显这些图像并不相同,而是OCR的PDF中的图像稍微旋转。

我认为Abbyy FineReader认识到原始扫描图像没有正确定位。因此,它稍微旋转它以纠正这个方向。

因此,将OCR版本中的图像替换为原始版本中的图像是不可取的:由于旋转,OCR信息可能会有些偏离。

您可能想要尝试的是将JPEG2000图像重新编码为JPEG,并将OCR版本中的图像替换为已重新编码的图像。这将意味着一些质量损失,但很可能你可以通过这种方式摆脱抗锯齿。

请注意,JPEG2000图像略大于JPEG图像,以适应旋转。

PS:正如@VadimR指出的那样,在查看文件时我错过了OCR版本的图像字典中的 / Interpolate true条目。这似乎不是减慢渲染速度的主要问题。

The original JPEG

答案 1 :(得分:1)

OCR-ed版本的图像字典中有/Interpolate true条目,这就是导致'抗锯齿'的原因。无论是(而不是JPEG2000而不是JPEG压缩)都是导致速度减慢的原因,您需要检查足够大的文件。

要取消设置此键,最好在创建文件时关闭它,如果不可能,则用适当的语言编写和运行一个小程序。

但是,由于您的文件不是“压缩对象”,并且文件内部有明显的视图,因此本着“快速完成工作”的精神,您可以简单地处理您的文件,例如:像这样:

perl -M-encoding -0777pe "s!/Interpolate true!' 'x17!ge" <in.pdf >out.pdf