📜  如何在Python中识别图像中的光学字符?

📅  最后修改于: 2022-05-13 01:55:18.743000             🧑  作者: Mango

如何在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