PDF to tiff ImageMagick 问题

Posted

技术标签:

【中文标题】PDF to tiff ImageMagick 问题【英文标题】:PDF to tiff ImageMagick problem 【发布时间】:2011-05-14 13:54:50 【问题描述】:

我正在尝试将 pdf 转换为 tiff 图像以进行 OCR。我使用“-density 300x300 -depth 8”作为参数。 第一个问题是我从 500 KB 的 pdf 文件中得到 72 MB 的 tiff 文件。 第二个问题是导致 OCR 失败的结果图像质量差。 在这里你可以自己看看。 Adobe acrobat 阅读器生成(打印)tiff 图像:

ImageMagick tiff 图像:

差别很大。 如何使用 ImageMagick 获得与 Adob​​e 生成的图像一样好的效果? 不需要tiff,其他格式也可以。

UPD:我找到了“antialias”选项。现在好多了。 但是 OCR 结果仍然不如 Adob​​e 版本准确。

【问题讨论】:

其实 Adob​​e 的更差,因为它没有抗锯齿,而且看起来像素化了很多。 对于人类 - 是的。但是对于 Tesseract,Adobe 版本是最好的。 为什么要将双层图像转换为 8 位灰度(-depth 8)?如果您只需要将格式从 PDF 更改为 TIFF 并且不更改图像数据,请将位深度保留为原始。 这是为 Tesseract 准备的。否则它将失败,说不支持图像格式。 为什么要将文本转换为图像,然后将生成的图像转换为文本?也许从 PDF 中提取文本会更适合您的需求? 【参考方案1】:

我的建议是:使用 Ghostscript 命令行。因为 ImageMagick 无论如何都在后台使用 Ghostscript(对此的技术 IM 术语是:Ghostscript 是某些转换的“代表”,例如 PDF->TIFF)。

下面是一个命令行,它应该适用于多页 PDF 文件的信纸大小的页面:

gswin32c.exe ^
   -o page_%03d.tif ^
   -sDEVICE=tiffg4 ^
   -r720x720 ^
   -g6120x7920 ^
    input.pdf

-g... 参数使用“设备点”控制输出页面的绝对宽度+高度...(对于 6120x7920 和 720dpi,这恰好是字母大小)。

这些 TIFF 页面...

    ...将是黑+白, ...分辨率为 720dpi, ...将被 G4 压缩和 ...将比您在 IM 命令行中未压缩的 300dpi 小得多

-depth 8 的 IM 参数不适合从 p.o.v 中获得好的结果。后来的 OCR,因为它会在字母周围产生灰色阴影,这无济于事。

您的 OCR 结果现在应该比以前好得多。

如果您的 OCR 无法处理 TIFF G4 格式(我对此表示怀疑),那么您可以借助 Ghostscript 生成其他 TIFF 子格式。例如:

gswin32c.exe ^
   -o page_%03d.tif ^
   -sDEVICE=tiffgray ^
   -r720x720 ^
   -g6120x7920 ^
   -sCompression=lzw ^
    input.pdf

.

gswin32c.exe ^
   -o page_%03d.tif ^
   -sDEVICE=tiff24nc ^
   -r720x720 ^
   -g6120x7920 ^
   -sCompression=lzw ^
    input.pdf

tiffgray 设备创建 8 位灰度输出。 tiff24nc 设备创建 8 位 RGB 颜色输出。两种类型的 TIFF 当然都会比tiffg4 输出大。

【讨论】:

非常感谢,看起来棒极了!最后一个问题:你知道让它从多页 pdf 生成一个多页 tiff 文件吗? @dumpter:对于多页 TIFF,只需使用 -o output.tif。如果输出没有%03d 名称部分,则不会有单页 TIFF.... 谢谢。现在它看起来像我想要的。【参考方案2】:

对于欧洲纸张格式 A4 和 unix/linux 使用:

gs -o output.tif -sDEVICE=tiffg4 -r720x720 -sPAPERSIZE=a4 input.pdf 

【讨论】:

根据post,对于彩色图像必须使用-sDEVICE=tiffscaled24

以上是关于PDF to tiff ImageMagick 问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 CMYK 和透明度将 PDF 转换为 Tiff

使用 ghostscript 实现与 imagemagick 的转换相同的 PDF 压缩

imagemagick 将 RGB PNG 转换为 CMYK PDF

Ghostscript PDF to TIFF设置输出大小c#

ImageMagick:将图像转换为 A4 页面大小的 PDF,图像适合页面

ImageMagick:在不使用外部文本文件的情况下将选择性图像转换为多页 PDF?