为了在 Python 中识别图片中的文字信息,需要使用 OCR 技术(Optical Character Recognition,光学字符识别)。该技术可以将图片中的文本转换为可编辑文本,使得文本的处理、搜索和复制变得更加容易。
下面是用 Python 识别图片中的文字信息的完整攻略。
安装 OCR 库
首先需要安装 OCR 库,可以选择下面两个常用的库:
- pytesseract:基于 Google Tesseract OCR 引擎实现的 OCR 库。
- OCRopus:基于 Python 实现的 OCR 引擎,其开放源代码。
使用 pip
命令安装上述库,
pip install pytesseract
pip install ocropus
加载图片
在识别文本之前,需要加载图像。可以使用 Python 的 OpenCV 库来处理图片,
import cv2
image = cv2.imread('test.png')
识别文本
使用 pytesseract
库识别图像中的文本,
import pytesseract
text = pytesseract.image_to_string(image)
print(f'The text in the image is \n{text}')
也可以使用 OCRopus
库识别文本,
import ocrolib
text = ocrolib.recognition.recognize_text(image)
print(f'The text in the image is \n{text}')
示例
示例 1:识别验证码
在 Web 服务中,验证码通常以图片的形式呈现,为了自动化测试和模拟网站登录,需要使用 Python 识别验证码。下面是示例代码,
import cv2
import pytesseract
# 加载验证码
image = cv2.imread('captcha.png')
# 灰度化处理
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 二值化
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY_INV)
# 识别文本
text = pytesseract.image_to_string(thresh)
# 显示结果
print(f"The text in the image is {text}")
示例 2:识别长文本
下面是一个示例,演示如何使用 Python 识别长文本图像,
import cv2
import pytesseract
# 加载长文本
image = cv2.imread('long_text.png')
# 按行分割
result, lines = cv2.text.detectRegions(image)
for line in lines:
x, y, w, h = line
text = pytesseract.image_to_string(image[y:y + h, x:x + w])
print(text)
在此示例中,我们将长文本按照行进行分割,然后使用 pytesseract
库识别每一行的文本。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 识别图片中的文字信息方法 - Python技术站