【发布时间】:2020-01-25 22:30:27
【问题描述】:
我开始学习 OpenCV 和 Tesseract,但对于一个看似非常简单的示例却遇到了麻烦。
这是我正在尝试 OCR 的图像,上面写着“171 m”:
我做了一些预处理。由于蓝色是文本的主要颜色,我提取了蓝色通道并应用了简单的阈值。
img = cv2.imread('171_m.png')[y, x, 0]
_, thresh = cv2.threshold(img, 150, 255, cv2.THRESH_BINARY_INV)
生成的图像如下所示:
然后将其放入 Tesseract 中,psm 7 用于单行:
text = pytesseract.image_to_string(thresh, config='--psm 7')
print(text)
>>> lim
我也尝试限制可能的字符,它变得更好了一点,但并不完全。
text = pytesseract.image_to_string(thresh, config='--psm 7 -c tessedit_char_whitelist=1234567890m')
print(text)
>>> 17m
OpenCV v4.1.1.
Tesseract v5.0.0-alpha.20190708
任何帮助表示赞赏。
【问题讨论】:
标签: python image opencv ocr tesseract