[英]What are best parameters to run ImageMagick to convert low quality pdf to images (for OCR)
我有几个低质量的pdf。 我想使用OCR - 更精确的Ocropus从中获取文本。 要使用,我首先使用ImageMagick - 一个命令行工具将pdf转换为图像 - 将这些pdf转换为jpg或png。
然而,ImageMagick会产生质量非常低的图像,而Ocropus几乎无法识别任何内容。 我想了解处理低质量pdf的最佳参数是什么,以便为OCR提供尽可能高质量的图像。
我找到了这个页面 ,但我不知道从哪里开始。
您可以通过键入来了解ImageMagick的“委托”(IM使用的外部程序,如Ghostscript)的详细设置
convert -list delegate
(在我的系统上,这是一个包含32个不同命令的列表。)现在看看哪些命令用于转换为PNG,请使用:
convert -list delegate | findstr /i png
好的,这是针对Windows的。 您没有说明您使用的操作系统。 [*]如果您使用的是Linux,请尝试以下操作:
convert -list delegate | grep -i png
你会发现IM确实只从PS或EPS输入产生PNG。 那么IM如何从你的PDF中获取(E)PS? 简单:
convert -list delegate | findstr /i PDF
convert -list delegate | grep -i PDF
啊! 它使用Ghostscript进行PDF => PS转换,然后再次使用Ghostscript进行PS => PNG转换。 但是, 如果您知道Ghostscript可以一次性执行PDF => PNG ,则不是最有效的方法。 更快。 而且质量要好得多。
关于IM通过Ghostscript代表处理PDF到图像的转换,您首先要了解两件事:
-density 600
,它告诉Ghostscript使用600 dpi分辨率的图像输出。 PDF => PS
再PS => PNG
是一个真正的错误。 因为你从来没有赢过并且在第一步中保持质量,但经常会松一些。 原因:
PS => PDF
方向的转换并不重要....) 这就是为什么我建议您直接使用Ghostscript将PDF转换为PNG(或JPEG)。 并使用Ghostscript的最新版本8.71 (即将发布:9.01)! 以下是示例命令:
gswin32c.exe ^
-sDEVICE=pngalpha ^
-o output/page_%03d.png ^
-r600 ^
d:/path/to/your/input.pdf
(这是Windows命令行。在Linux上,使用gs
代替gswin32c.exe
,和\\
而不是^
)。这个命令需要找到一个output
子目录在那里将存储每个PDF页面创建一个单独的文件。 要制作高质量的JPEG,请尝试
gs \
-sDEVICE=jpeg \
-o output/page_%03d.jpeg \
-r600 \
-dJPEGQ=95 \
/path/to/your/input.pdf
(Linux命令版本)。 这种直接转换避免了中间PostScript格式,这可能丢失了原始PDF文件中的TrueType字体和透明度对象的信息。
[*] D'哦! 我最初错过了看到你的“linux”标签......
-density 600
左右应该给你你需要的。
您可能需要考虑至少两个其他工具:
pdfimages
poppler-utils
软件包附带的pdfimages
可以轻松地从PDF中提取图像而不会降低它们的性能。 pdfsandwich
,只需运行pdfsandwich inputfile.pdf
即可为您提供OCR文件。 您可能需要调整选项以获得不错的结果。 有关详细信息,请参阅官方页面 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.