如何在Python中识别图像中的光学字符?
先决条件: Pytesseract , OpenCV
在本文中,我们将从图像中识别字符并从图像中获取文本数据。让我们快速介绍一下所需的模块。
- OpenCV:它是一个Python模块,我们可以在其中进行图像处理、视频捕获和一些分析工具,例如人脸检测或对象检测。它具有 C++、 Python、 Java和 MATLAB 接口,并支持 Windows、Linux、Android 和 Mac OS。
- Pytesseract: Python-tesseract 是Python的光学字符识别 (OCR) 工具。也就是说,它将识别并“读取”嵌入在图像中的文本。 Python-tesseract 是 Google 的 Tesseract-OCR 引擎的包装器。它也可用作 tesseract 的独立调用脚本,因为它可以读取 Pillow 和 Leptonica 成像库支持的所有图像类型,包括 jpeg、png、gif、BMP、tiff 等。此外,如果用作脚本,Python-tesseract 将打印识别的文本而不是将其写入文件。
方法:
- 导入所需模块
- 设置pytesseract的路径。
- 使用 cv2.imread() 读取图像
- 将图像转换为 RGB 格式。
- 使用 pytesseract.image_to_string(img) 从图像中提取文本。
我们将使用此图像进行演示:
下面是完整的实现:
Python3
# importing the libraries
import cv2
import pytesseract
# seting the path of pytesseract exe
# you have to write the location of
# on which your tesseract was installed
pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
# Now we will read the image in our program
# you have to put your image path in place of photo.jpg
img = cv2.imread('photo.jpg')
# Our image will read as BGR format,
# So we will convert in RGB format because
# tesseract can only read in RGB format
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# For getting the text and number from image
print(pytesseract.image_to_string(img))
# For displaying the orignal image
cv2.imshow("result", img)
cv2.waitKey(0)
输出:
GeeksforGeeks