![如何在 Linux 中从命令行使用 OCR?](https://linux22.com/image/115134/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%AD%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%BD%BF%E7%94%A8%20OCR%EF%BC%9F.png)
我有几千页扫描书页。每个页面都单独保存为 JPG。文字清晰,但字体各不相同,并且页面上确实包含图片和插图。
我需要创建每个 JPG 文件中出现的所有单词的列表。是否有命令行工具用于扫描列出出现的单词的图像?它不需要完美的扫描,只是一个估计。
答案1
答案2
Install imagemagick
,pdftotext
(在某些包管理器中命名的包中找到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