我正在使用tesseract将一系列图像批量转换为可搜索的PDF以及包含OCRd文本的TXT文件。
tesseract infile outfile -l eng myconfig
*infile包含要处理的图像路径列表
*myconfig包含用于指定输出类型的Tesseract首选项(tessedit_create_text 1 和 tessedit_create_pdf 1)
这就剩下了 * outfile.pdf * 和 * outfile.txt ,后者包含用于在图像之间分隔文本的页面分隔符。
然而,我真正想要做的是,使用相同的对应图像名称,在每个图像的基础上输出多个TXT文件。例如,Image1.jpg.txt,Image2.jpg.txt,Image3.jpg.txt...
tesseract是否有原生支持这种行为的选项?我知道我可以循环遍历图像文件列表并逐个图像地执行tesseract,但这并不理想,因为我还必须第二次运行tesseract来生成合并的PDF。相反,我希望同时运行这两个选项,以减少总体执行时间。
我还意识到,我可以在页面分隔符上将合并的TXT文件拆分为多个文本文件,但这样我就不得不引入不太优雅的代码来Map和重命名所有这些拆分的文件,以对应于它们原始的图像名称: 将0001.txt重命名为Image1.jpg.txt...*
我可以随意使用Python 3和Linux命令。
4条答案
按热度按时间31moq8wy1#
您可以准备一个批处理文件,该文件循环输入图像并同时输出到
txt
和pdf
--更有效,只需一次OCR操作而不是两次。然后,您可以将输出的.txt文件拆分为多个页面。tesseract inimagefile outfile txt pdf
k3fezbri2#
将多个图像转换为单个PDF文件。
在Linux上,您可以列出所有图像,然后将它们通过管道传输到tesseract
其中:
将图像转换为单独的文本文件
在Linux上,您可以使用for循环遍历文件并对每个文件执行一个操作。
其中:
我们需要这样来命名文本文件为相应的名称,例如。
dwbf0jvd3#
由于Tesseract似乎不能处理这个问题,我刚刚开发了一个函数,将页面分隔符上合并的TXT文件拆分为多个文本文件。尽管从我的观察来看,我不确定Tesseract是否能通过同时将批量图像转换为PDF和TXT(而不是运行两次-一次用于PDF,一次用于TXT)来加快运行速度。
zvokhttg4#
谢谢大家!
顺便说一句,我用的是4.1.1。
而且我发现了另一个西班牙语的Trainedata,它比标准的做得更好。实际上很好地识别了"o"字符。唯一的问题是处理时间,但我让PC工作了一夜。
老实说,我不知道新的trainedata文件是如何做得更好。https://github.com/tesseract-ocr/tessdata_best