【发布时间】:2019-03-31 19:51:19
【问题描述】:
我正在使用 Pytesseract 识别数字 5 的图像,令我震惊的是,即使在应用了各种过滤器(如 GlaussianBlur 和 Threshold)并应用膨胀和腐蚀来消除噪声后,它仍然无法识别图像。
过滤器尝试:
1: cv2.threshold(cv2.GaussianBlur(img, (9, 9), 0), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
2: cv2.threshold(cv2.GaussianBlur(img, (7, 7), 0), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
3: cv2.threshold(cv2.GaussianBlur(img, (5, 5), 0), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
4: cv2.threshold(cv2.medianBlur(img, 5), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
5: cv2.threshold(cv2.medianBlur(img, 3), 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1],
6: cv2.adaptiveThreshold(cv2.GaussianBlur(img, (5, 5), 0), 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2),
7: cv2.adaptiveThreshold(cv2.medianBlur(img, 3), 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 31, 2),
应用膨胀和腐蚀来消除一些噪音
kernel = np.ones((1, 1), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)
img = cv2.erode(img, kernel, iterations=1)
训练数据:
eng.traineddata
原图
不确定这里出了什么问题,我阅读了 Tesseract 的文档并应用了那里提到的所有预处理步骤。有人可以帮助我在这里出错的地方
【问题讨论】:
-
你使用的是 LSTM 版本的 tesseract 吗?请将预处理后的图像添加到您的问题和 tesseract 的当前输出中。
-
发布的图像仅是后期预处理图像,是的,我使用的是 LSTM 版本。
标签: python opencv ocr tesseract python-tesseract