【发布时间】:2019-06-29 14:32:55
【问题描述】:
我正在寻找从图像中提取文本,我收到的输出不是很准确。我想知道是否可以采取任何其他步骤来更多地处理图像以提高此 OCR 的准确性。
我研究了一些处理图像和改进 OCR 结果的不同方法。图像很小,我可以将其稍微放大,但无济于事。
图像将始终是水平的,除了数字之外不会出现其他文本。最大数量将达到 55000。
有问题的图片示例:
图像处理后,我的图像在 X 和 Y 轴上放大了 4 倍。并且去除了一些饱和度,尽管这根本不会提高准确性。
image = self._process(scale=6, iterations=2)
text = pytesseract.image_to_string(image, config="--psm 7")
我的处理方法是这样做的:
# Resize and desaturate.
image = cv2.resize(image, None, fx=scale, fy=scale,
interpolation=cv2.INTER_CUBIC)
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Apply dilation and erosion.
kernel = np.ones((1, 1), np.uint8)
image = cv2.dilate(image, kernel, iterations=iterations)
image = cv2.erode(image, kernel, iterations=iterations)
return image
预期:“10411”
实际值多变,通常是无法识别的字符串,或者解析了一些数字但准确率太低无法使用。
【问题讨论】:
标签: python opencv processing ocr