我有几千页的扫描书页。每个页面都单独保存为 JPG。文字清晰,但字体各不相同,页面确实包括图片和插图。
我需要创建出现在每个 JPG 文件中的所有单词的列表。是否有用于扫描列出出现的单词的图像的命令行工具?它不需要完美的扫描,只是一个估计。
Nic*_*mer 37
tesseract可能是这里最常用的解决方案。它在大多数软件包存储库中可用,例如,
sudo apt install tesseract-ocr
Run Code Online (Sandbox Code Playgroud)
并且可以与
tesseract input.png out.txt
Run Code Online (Sandbox Code Playgroud)
rie*_*333 20
安装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
Run Code Online (Sandbox Code Playgroud)
小智 11
将 image file.png 放大 480%,更改为灰度,用白色回填,锐化,然后使用 tesseract OCR 提取。除了非常大的字体和黑底白字外,它大部分时间对我来说都很好用。如果字体非常大,则只能放大 200% 或 300%。
convert -colorspace gray -fill white -resize 480% -sharpen 0x1 file.png file.jpg
tesseract file.jpg file
Run Code Online (Sandbox Code Playgroud)
结果在 file.txt 中。