我们将介绍如何使用 Python 中的 Tesseract 创建一个可以从图像中读取文本的程序。
当我们使用需要从图像中读取文本的功能的系统时,我们会使用 Python 中的 Tesseract。 它提供了强大的功能,帮助我们更准确、更高效地从图像中读取文本。
本文还将介绍使用流行的 OpenCV 库从图像中提取文本。
Tesseract 是一个基于计算机的系统,用于光学字符识别 (OCR) 和其他图像到文本处理。 它主要用于不使用拉丁字母的语言的文本识别。
该系统可用于多种用途,包括文本和数据挖掘、教育、翻译和机器翻译。
Tesseract 也是该软件开源版本的名称。 它通常用于自然语言处理和机器学习中的文本分类和其他与文本相关的任务。
首先,让我们使用以下代码行在 Python 中安装 Tesseract 工具。
# python
pip install pytesseract
安装 Tesseract 工具后,我们将安装其他重要的库,我们将在示例中使用它们从图像中读取文本。 首先,我们将使用以下命令安装 OpenCV。
# python
pip install opencv-python
现在我们将安装 ArgParse 库,我们将使用它来创建用户友好的命令行界面。 我们可以使用以下命令轻松安装它。
# python
pip install argparse
我们现在将安装 Pillow 库,一个 Python 成像库。 该库将为我们的 python 解释器添加图像处理功能。
我们可以使用下面所示的命令安装这个库。
# python
pip install Pillow
现在,让我们使用 Tesseract 在 Python 中从图像中读取文本。 我们需要按照以下步骤使其发挥作用。
首先,我们将从图库中导入或加载要从中读取文本的图像,如果没有,我们可以从 Chrome 下载它,然后加载它。
导入图像后,我们会将加载的图像转换为二进制文件。 在最后一步中,我们将二进制文件发送到 Tesseract,Tesseract 将查找其中的文本并从图像中返回文本。
我们将导入之前安装的所有库。
# python
import cv2
import os,argparse
import pytesseract
from PIL import Image
我们将使用 ArgParse 函数 ArgumentParser()
构造参数解析器,如下所示。
# python
imgArg = argparse.ArgumentParser()
imgArg.add_argument("-i","--image",
required=True,
help="Enter path of image folder")
imgArg.add_argument("-p","--pre_processor",
default="thresh",
help="the preprocessor usage")
arguments = vars(imgArg.parse_args())
现在,我们将使用 OpenCV 库通过以下代码读取带有文本的图像。
# python
imageRead = cv2.imread(arguments["image"])
现在,我们将使用 OpenCV 库将图像转换为灰度,如下所示。
#python
imgGray=cv2.cvtColor(imageRead, cv2.COLOR_BGR2GRAY)
然后,我们将使用 if-else 语句来检查图像是否被脱粒或模糊。 如果是,我们可以更改阈值和模糊,如下所示。
# python
if arguments["pre_processor"]=="thresh":
cv2.threshold(gray, 0,255,cv2.THRESH_BINARY| cv2.THRESH_OTSU)[1]
if arguments["pre_processor"]=="blur":
cv2.medianBlur(gray, 3)
如下所示,我们将使用 OpenCV 和 Tesseract 库将图像添加到内存中。
# python
nameImg = "{}.jpg".format(os.getpid())
cv2.imwrite(nameImg, gray)
imgText = pytesseract.image_to_string(Image.open(nameImg))
os.remove(nameImg)
print(imgText)
现在,我们将使用以下代码显示图像输出。
# python
cv2.imshow("Images Uploaded", imageRead)
cv2.imshow("Images Converted In Grayscale", imgGray)
cv2.waitKey(0)
现在,让我们使用以下代码运行上面的代码,并检查它是如何工作的以及它从图像中读取文本的效果如何。
# python
python main.py --image img/read.jpg
我们发送的图片如下所示:
图像处理完成后,将以灰度形式保存,如下所示:
我们将在命令提示符中得到以下输出:
正如您在上面的示例中看到的,我们可以轻松使用图像并阅读其文本。 如果需要,我们可以存储它们或将它们显示在控制台中。