首页 > 解决方案 > 使用 pytesseract 的段落边界框

问题描述

我有一张收据图像,我正在尝试使用 Pytesseract 来围绕收据的文本段落绘制边界框。问题是 Tesseract 是根据字母而不是每个块来识别边界框的区域。

我也知道 Tesseract 的不同页面分割模式,尽管我已经尝试了所有这些模式,但没有任何效果。有什么我想念的吗?

这是我迄今为止尝试过的:

import cv2
import pytesseract
import matplotlib.pyplot as plt

filename = 'optimized_scanned_images/test1.jpg'
img = cv2.imread(filename)
h, w, _ = img.shape
boxes = pytesseract.image_to_boxes(img, config='-psm 5 load_system_dawg = False load_freq_dawg=False')

for b in boxes.splitlines():
    b = b.split(' ')
    img = cv2.rectangle(img, (int(b[1]), h - int(b[2])), (int(b[3]), h - int(b[4])), (0, 255, 0), 1)

fig, ax = plt.subplots(figsize=(10, 6))
ax.imshow(img)
ax.set_axis_off()
plt.tight_layout()
plt.show()

标签: pythontesseractimage-segmentationpython-tesseract

解决方案


推荐阅读