了解如何使用tesseract和ocrfeeder正确识别图像中的文本。

你们中的许多人必须已经知道光学字符识别(OCR)程序,如果是这样,您会遇到一些无法识别典型的西班牙语字符的字符,例如eñe,tílde等(ñ,ó,ü)。

现在感谢 正方体 和包装 tesseract-ocr-eng 我们将能够识别这些字符,并且将看到如何处理颜色或像素级别不正确的某些图像。

首先,我们必须安装以下程序:

Tesseract-ocr
tesseract-ocr-eng
进纸器

我建议您在Debian中安装它们而不安装推荐的软件:

sudo apt-get --no-install-recommends install ocrfeeder tesseract-ocr-spa tesseract-ocr

如果我们的图像(扫描的文档)中的字母清晰易读,则大约有90%的情况下都可以识别文本,表格将不会被识别,如果图像有两列,它将自动识别出第一列,然后另一列保持文本的顺序。

有两种识别文本的方法,一种是通过终端中的命令行或通过ocrfeeder来识别,后者将需要更多的处理时间:

命令行方法:

tesseract "/entrada/fichero.jpg" "/salida/fichero.txt" -l spa -psm 3

为了转换多个图像,我们将使用以下命令:

cd /carpeta/imagenes
find ./ -name "*.jpg" | sort | while read file; do tesseract "$file" "`basename "$file" | sed 's/\.[[:alnum:]]*$//'`.txt" -l spa -psm 3; done

为了将结果文本文件连接到所述文件夹中,我们将使用以下命令将段落正确连接。

cd /carpeta/imagenes
find ./ -name "*.txt" | sort | while read file; do cat "$file" | sed 's|^$|##|g' | tr '\n' " " | tr '##' "\n" >> Texto-unido.txt; done

ocrfeeder的方法:
1-我们打开ocrfeeder程序。
2-我们通过单击工具-OCR引擎来编辑引擎,选择esseract引擎,然后单击编辑,然后在其中显示引擎参数的地方,我们更改该脚本的脚本:

$IMAGE $FILE -l spa -psm 3 > /dev/null 2> /dev/null; cat $FILE.txt; rm $FILE $FILE.txt

3-我们导入图像或包含多个图像的文件夹。
4-我们单击“识别文档”,一旦文档被识别,您可以手动选择图像或文本的哪一部分。
5-导出文档之前,我们单击“编辑”“编辑”页面,然后选择所需的页面,最常见的是字母(字母)。
6-要导出文档,请单击文件-导出,我们选择所需的输出格式,如果文档包含图像,我建议您使用odt或html格式,如果仅是文本,则最好使用纯文本( txt)格式。

到这里为止还没有结束,因为有很多影印件的质量不够高,为了修复这些影印件,我们将使用带胶印和浮雕的滤镜(此过程可能很慢):
1-我们打开带有图像的图像。
2-单击“滤镜-变形-压花”,选择凹凸贴图框,将方位角级别调整为大约162,25,高程调整为88,73,深度调整为6或3。如果图片为jpg,则保存100%的质量,在导出-name.jpg。

(可选)您可以通过单击颜色-级别-自动来调整白色级别。