【发布时间】:2020-09-02 12:11:54
【问题描述】:
我通过pytesseract 绑定使用tesseract 进行OCR。不幸的是,我在尝试提取包含下标样式数字的文本时遇到了困难——下标数字被解释为一个字母。
例如,在基本图像中:
我想将文本提取为“CH3”,即我不关心知道数字3 是图像中的下标。
我使用tesseract 的尝试是:
import cv2
import pytesseract
img = cv2.imread('test.jpeg')
# Note that I have reduced the region of interest to the known
# text portion of the image
text = pytesseract.image_to_string(
img[200:300, 200:320], config='-l eng --oem 1 --psm 13'
)
print(text)
很遗憾,这会输出错误
'CHs'
也可以获取'CHa',具体取决于psm 参数。
我怀疑这个问题与文本的“基线”跨行不一致有关,但我不确定。
我怎样才能准确地从这种类型的图像中提取文本?
更新 - 2020 年 5 月 19 日
在看到 Achintha Ihalage 的回答后,它没有为 tesseract 提供任何配置选项,我探索了 psm 选项。
由于感兴趣区域是已知的(在本例中,我使用 EAST 检测来定位文本的边界框),tesseract 的 psm 配置选项,在我的原始代码中将文本视为单行,可能没有必要。对上面边界框给出的感兴趣区域运行image_to_string 会得到输出
CH
3
当然可以很容易地处理得到CH3。
【问题讨论】:
标签: python ocr tesseract python-tesseract