如何在 Linux 中从命令行使用 OCR?

如何在 Linux 中从命令行使用 OCR?

我有几千页扫描书页。每个页面都单独保存为 JPG。文字清晰,但字体各不相同,并且页面上确实包含图片和插图。

我需要创建每个 JPG 文件中出现的所有单词的列表。是否有命令行工具用于扫描列出出现的单词的图像?它不需要完美的扫描,只是一个估计。

答案1

立方体可能是这里最常用的解决方案。它在大多数软件包存储库中都可用,例如,

sudo apt install tesseract-ocr

并可与

tesseract input.png out.txt

答案2

Install imagemagickpdftotext(在某些包管理器中命名的包中找到poppler-utils)和ocrmypdf。后者是一款快速(ocr 占用大量 CPU,并且配置为使用所有核心)、开源且经常更新的 OCR 软件。这种方法可能有点矫枉过正,因为它实际上试图为每个单词分配一个字符串,而不是仅仅标记一个单词,但总的来说,我在寻找良好且易于使用的开源 OCR 软件时遇到了很多麻烦。然后,在保存所有 JPG 的目录中:

$ convert *.jpg pictures.pdf
$ ocrmypdf pictures.pdf scanned.pdf
$ pdftotext scanned.pdf scanned.txt
$ wc -w scanned.txt

答案3

将图像 file.png 放大 480%,更改为灰度,用白色回填,锐化,然后使用 tesseract OCR 提取。它在大多数情况下对我来说效果很好,除了非常大的字体和黑底白字。如果字体很大,则只能放大 200% 或 300%。

 convert -colorspace gray -fill white  -resize 480%  -sharpen 0x1  file.png file.jpg
 tesseract file.jpg file

结果在 file.txt 中。

答案4

对于 Linux 用户来说,没有什么比使用 Calibre 将 pdf 转换为 docx 更有效的了。https://calibre-ebook.com/download_linux

相关内容