假设对一张含印刷宋体文字图片,用python代码实现用pytesseract识别上述图片中的文字并框出
时间: 2023-06-24 10:08:18 浏览: 118
如何基于python把文字图片写入word文档
可以使用Python中的pytesseract库和OpenCV库来实现此功能。下面是一个示例代码:
```python
import cv2
import pytesseract
# 读取图片
img = cv2.imread('image.png')
# 将图片转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 对图片进行二值化处理
_, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)
# 对二值化后的图片进行膨胀操作
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
dilated = cv2.dilate(thresh, kernel, iterations=3)
# 使用pytesseract识别文字
text = pytesseract.image_to_string(dilated, lang='chi_sim')
# 输出识别结果
print(text)
# 获取识别框的坐标
boxes = pytesseract.image_to_boxes(dilated, lang='chi_sim')
# 将框绘制在原图上
for box in boxes.splitlines():
box = box.split(' ')
x, y, w, h = int(box[1]), int(box[2]), int(box[3]), int(box[4])
cv2.rectangle(img, (x, img.shape[0] - y), (w, img.shape[0] - h), (0, 0, 255), 2)
# 显示带框的图片
cv2.imshow('image', img)
cv2.waitKey(0)
```
在上述代码中,首先使用OpenCV库读取图片,并将其转换为灰度图。然后对灰度图进行二值化处理和膨胀操作,以便更好地识别文字。接着使用pytesseract库识别图片中的文字,并输出识别结果。最后,使用pytesseract库获取识别框的坐标,将框绘制在原图上,并显示带框的图片。
阅读全文