神器魔手:Linux下光学字符识别利器OCRFeeder上手教程
大约在 2016 年的时候,薄荷君因为当时折腾 Linux,导致一份重要文件的 WORD 文档丢失了,手头只有一份纸质版。当时需要将这份文件进行小幅度修改后再打印使用,可是这份文件有几十页之多,完全手工重新打字输入将会工作量巨大。
问题导向又来了。薄荷君楞是找到了在 Linux 下 OCR(光学字符识别,通俗地讲就是把图片中的文字识别、复制出来)的方法,那就是本文介绍的 OCRFeeder。
虽然 2016 年就写过 OCRFeeder 的教程,但是由于薄荷开源网在 2020 年初没有备份网站数据,丢失了之前所有文章,且 OCRFeeder 现在的效率和准确率明显提升了,所以今天再次介绍 OCRFeeder 的使用,仍有必要。
首先,我们准备好需要识别的图片。当然,如果是 PDF 文档,OCRFeeder 并不能直接识别,可以参阅前文《图像魔术:ImageMagick轻松转换PDF和图片》,把 PDF 文档转化为图片后即可识别。
然后安装 OCRFeeder 和 OCR 识别引擎。其实 OCRFeeder 只是一个 GUI 前端软件,后端调用著名的开源的 Tesseract 引擎进行识别。以 LinuxMint 20.x/Ubuntu 20.04 为例,我们可以直接在软件仓库里安装 OCRFeeder 和 Tesseract 的简体中文数据,它会自动安装 Tesseract 引擎。
sudo apt install ocrfeeder tesseract-ocr-chi-sim
安装后启动 OCRFeeder。典型的开源软件风格,简洁明了,没有任何多余的装饰和花里胡哨的东西。不过,OCRFeeder 中文化还是做得不错。
在正式使用前,我们需要对 OCRFeeder 的识别引擎进行简单配置。点击 OCRFeeder 菜单栏的 工具–OCR 引擎。
在 Tesseract 引擎的编辑界面之“引擎语言”中,我们找到代表简体中文的那一段:zh:chi-sim,改成 zh:chi_sim,也就是把减号改成下划线。
不过,依薄荷君的经验,根本不需要那么多语音支持,所以只保留简体中文和英语就行了,提高引擎运行效率。
配置完毕,点击 OCRFeeder 工具栏的加号,打开一张图片。
点击一键整体识别按钮,即可对图片进行整体识别。当然,也可以直接用鼠标在打开的图片中划取选区进行识别。
如图所示,一键整体识别后,鼠标点击图片对应的区域,右侧识别结果文本框里就有识别出来的文字,可以直接复制粘贴到 WPS、LibreOffice 中使用。
更多贴心的是,OCRFeeder 提供了一键保存为 ODT 文档(Libreffice 的文档格式相当于 DOC 文档),简直是太赞了!
如图所示,打开一键保存的 ODT 文档,果然识别出来的文字都在这里了。
小结:总体而言,OCRFeeder+Tesseract 的识别准确率还不错,与 Windows 下的工具差异不大。当然,一些空格、标点、格式等需要微调是正常的。