【发布时间】:2020-06-22 17:28:25
【问题描述】:
您好,我希望使用 pytesseract 提高我在数字识别方面的表现。
我将原始图像分割成如下所示的部分:
大小可以变化。
为此,我应用了一些类似这样的预处理方法
image = cv2.imread(im, cv2.IMREAD_GRAYSCALE)
image = cv2.GaussianBlur(image, (1, 1), 0)
kernel = np.ones((5, 5), np.uint8)
result_img = cv2.blur(img, (2, 2), 0)
result_img = cv2.dilate(result_img, kernel, iterations=1)
result_img = cv2.erode(result_img, kernel, iterations=1)
我明白了
然后我将它传递给 pytesseract:
num = pytesseract.image_to_string(result_img, lang='eng',
config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789')
但这对我来说还不够好,而且经常弄错数字。
我正在寻找改进的方法,我试图保持最小化和独立,但如果我不清楚,请告诉我,我会详细说明。
谢谢。
【问题讨论】:
-
腐蚀步骤给你什么?我会先进行模糊处理,然后再压缩动态范围,也就是说,大多数浅色变为白色,大部分深色变为黑色,为灰色留下一个相当狭窄的区域,只是为了减少边框的锯齿。跨度>
-
您能告诉我如何进行动态范围的压缩吗?事实上,您能否拍摄最上面的图像并向我展示您将如何处理它以使其被 tesseract 识别?如果你这样做,请给出答案,以便我接受!
标签: python image ocr tesseract python-tesseract