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 获得与 Adobe 生成的图像一样好的效果? 不需要tiff,其他格式也可以。
UPD:我找到了“antialias”选项。现在好多了。 但是 OCR 结果仍然不如 Adobe 版本准确。
【问题讨论】:
其实 Adobe 的更差,因为它没有抗锯齿,而且看起来像素化了很多。 对于人类 - 是的。但是对于 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 问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 ghostscript 实现与 imagemagick 的转换相同的 PDF 压缩
imagemagick 将 RGB PNG 转换为 CMYK PDF
Ghostscript PDF to TIFF设置输出大小c#