在 Python 中使用 Tesseract 从图像中读取文本
我们将介绍如何使用 Python 中的 Tesseract 创建一个可以从图像中读取文本的程序。
Python 中的超正方体
当我们使用需要从图像中读取文本的功能的系统时,我们会使用 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
在 Python 中使用 Tesseract 从图像中读取文本
现在,让我们使用 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
我们发送的图片如下所示:
图像处理完成后,将以灰度形式保存,如下所示:
我们将在命令提示符中得到以下输出:
正如您在上面的示例中看到的,我们可以轻松使用图像并阅读其文本。 如果需要,我们可以存储它们或将它们显示在控制台中。
相关文章
Python 中的队列实现
发布时间:2023/07/02 浏览次数:62 分类:Python
-
我们在 Python 中使用队列来执行先进先出 (FIFO) 操作。 本文将讨论 Python 中队列实现的三种不同方法。Python 中的队列实现 在队列中,我们可以执行不同的操作。
Python 行列式
发布时间:2023/07/02 浏览次数:129 分类:Python
-
矩阵的行列式是仅与方阵相关的标量。 对于方阵 [[1,2], [3,4]],行列式计算为 (1x4) - (2x3)。在Python中使用numpy.linalg.det()计算矩阵的行列式
Python 中的 Pexpect
发布时间:2023/07/02 浏览次数:157 分类:Python
-
我们将通过示例介绍Python中的Pexpect。Python 中的 Pexpect Python 是一种非常流行的语言,用于数据科学和机器学习。 它是一种非常强大的语言,因为 Python 具有可用于不同目的的内置库。
Python 中的方法重载
发布时间:2023/07/02 浏览次数:186 分类:Python
-
本篇文章将通过示例介绍Python中的方法重载及其优点。Python 中的方法重载 方法重载在 Python 中起着至关重要的作用。 方法有时采用零个参数,有时采用一个或多个参数。
Python 中的内存泄漏
发布时间:2023/07/02 浏览次数:96 分类:Python
-
内存泄漏是一个常见的编程问题,很难调试和修复。 本文将通过小型和大型示例程序探讨 Python 内存泄漏。
Python 中的 Locust
发布时间:2023/07/02 浏览次数:89 分类:Python
-
我们将通过一个例子来介绍Python中的 locust。Python 中的 locust Locust 用于 Python 中的负载测试。 它是一个非常有用且最好的 Python 负载测试工具。
使用 Python 创建自动点击器
发布时间:2023/07/02 浏览次数:63 分类:Python
-
本篇文章将介绍在 Python 中创建自动答题器的不同方法。使用 pyautogui 模块在 Python 中创建自动点击器
Python 中的 Trie 实现
发布时间:2023/06/30 浏览次数:152 分类:Python
-
尝试是我们用来存储字符串的数据结构。 它们使我们能够以最有效的方式搜索文本字符串。本文将讨论如何在 Python 中实现 Trie。Python 中的 Trie 数据结构
Python Apriori 算法
发布时间:2023/06/30 浏览次数:184 分类:Python
-
Apriori 算法指出,如果一个项集是频繁的,那么它的所有非空子集也必须是频繁的。 本篇文章展示了如何使用 Python 中的 apyori 模块逻辑来实现这一点。