Ska*_*rab 8 linux pdf imagemagick image-processing ghostscript
我有几个低质量的pdf.我想使用OCR - 更精确的Ocropus 从中获取文本.要使用,我首先使用ImageMagick - 一个命令行工具将pdf转换为图像 - 将这些pdf转换为jpg或png.
然而,ImageMagick会产生非常低质量的图像,而Ocropus几乎无法识别任何内容.我想了解处理低质量pdf的最佳参数是什么,以便为OCR提供尽可能高质量的图像.
我找到了这个页面,但我不知道从哪里开始.
Kur*_*fle 14
您可以通过键入来了解ImageMagick的"委托"(IM使用的外部程序,如Ghostscript)的详细设置
convert -list delegate
Run Code Online (Sandbox Code Playgroud)
(在我的系统上,这是一个包含32个不同命令的列表.)现在看看哪些命令用于转换为PNG,请使用:
convert -list delegate | findstr /i png
Run Code Online (Sandbox Code Playgroud)
好的,这是针对Windows的.您没有说明您使用的操作系统.[*]如果您使用的是Linux,请尝试以下操作:
convert -list delegate | grep -i png
Run Code Online (Sandbox Code Playgroud)
你会发现IM确实只从PS或EPS输入产生PNG.那么IM如何从你的PDF中获取(E)PS?简单:
convert -list delegate | findstr /i PDF
convert -list delegate | grep -i PDF
Run Code Online (Sandbox Code Playgroud)
啊! 它使用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
Run Code Online (Sandbox Code Playgroud)
(这是Windows命令行.在Linux上,使用gs
替代gswin32c.exe
和\
取代^
.)此命令期望找到一个output
子目录,在那里将存储每个PDF页面创建一个单独的文件.要制作高质量的JPEG,请尝试
gs \
-sDEVICE=jpeg \
-o output/page_%03d.jpeg \
-r600 \
-dJPEGQ=95 \
/path/to/your/input.pdf
Run Code Online (Sandbox Code Playgroud)
(Linux命令版本).这种直接转换避免了中间PostScript格式,这可能丢失了原始PDF文件中的TrueType字体和透明度对象的信息.
[*] D'哦!我最初错过了看到你的"linux"标签......