相关疑难解决方法(0)

使用 cv2 / pytesseract 增强数字识别的局部对比度

我想使用 pytesseract 从图像中读取数字。图像如下:

在此输入图像描述

在此输入图像描述

数字是点状的,为了能够使用 pytesseract,我需要白色背景上的黑色连接数字。为此,我考虑使用侵蚀扩张作为预处理技术。正如您所看到的,这些图像很相似,但在某些方面却截然不同。例如,第一幅图像中的点比背景更暗,而第二幅图像中的点比背景更白。这意味着,在第一张图像中,我可以使用侵蚀来获得黑色连接线,在第二张图像中,我可以使用扩张来获得白色连接线,然后反转颜色。这导致以下结果:

在此输入图像描述

在此输入图像描述

使用适当的阈值,可以使用 pytesseract 轻松读取第一张图像。第二张图片,不管是谁,都比较棘手。问题是,例如“4”的某些部分比“3”周围的背景更暗。所以简单的阈值是行不通的。我需要诸如局部阈值或局部对比度增强之类的东西。这里有人有想法吗?

编辑:

OTSU、平均阈值和高斯阈值导致以下结果:

在此输入图像描述

python ocr opencv python-tesseract

2
推荐指数
1
解决办法
2416
查看次数

标签 统计

ocr ×1

opencv ×1

python ×1

python-tesseract ×1