我正在使用 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 文件拆分为多个文本文件,但随后我必须引入不太优雅的代码来映射和重命名所有这些拆分文件以对应于它们的原始图像名称:< em>将 0001.txt 重命名为 Image1.jpg.txt...
我正在使用 Python 3 和 Linux 命令。
最佳答案
将多个图像转换为单个 PDF 文件。
在 Linux 上,您可以列出所有图像,然后将它们通过管道传输到 tesseract
ls *.jpg | tesseract - yourFileName txt pdf
地点:
youFileName:是输出文件的名称。
txt pdf:是输出格式,您也可以仅使用其中一种。
将图像转换为单独的文本文件
在 Linux 上,您可以使用 for 循环来遍历文件并对每个文件执行操作。
for FILE in *.jpg; do tesseract $FILE ${FILE::-4}; done
地点:
for FILE in *.jpg:循环遍历所有JPG文件(您可以根据您的格式更改扩展名)
$FILE:是图像文件的名称,例如001.jpg
${FILE::-4}:是图像的名称,但不带扩展名,例如001.jpg 将是 001,因为我们删除了最后 4 个字符。
我们需要它来将文本文件命名为相应的名称,例如
- 001.jpg 将转换为 001.txt
- 002.jpg 将转换为 002.txt
关于linux - Tesseract 批量将图像转换为可搜索的 PDF 和多个相应的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57301142/