几乎相同的 Tesseract 图像解析不同

Tesseract images that are nearly identical parse differently

我正在打开一张图像进行形态学变换并保存它。但是,图像之间明显没有区别(即使放大像素)。图片链接如下。其中一个解析正确,另一个解析错误。

这是关键。如果我在 MS Paint 中打开未正确解析的图像,什么也不做,然后单击保存,它将神奇地开始正确解析。

谁能解释一下?

这是我的代码

img = cv2.imread(IMAGE, 1)
imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
kernel = np.ones((1,40), np.uint8)
morphed = cv2.morphologyEx(imgray, cv2.MORPH_CLOSE, kernel)
dst = cv2.add(imgray, (255-morphed))
cv2.imwrite("out.png", dst)

图片解析为“52.983.842”。:

图像被错误地解析为“522.983.8422”。:

两张图确实不一样。

如果将它们推入 GIMP,并将图层叠加模式设置为 Subtract,您会得到:

在最后一个 2 之后,差异似乎包含了一些神器,Tesseract 认为这是另一个数字。

使用画图保存结果可能会重新编码输出。

考虑到您的图片是 JPG,有损压缩。 有多种制作压缩表的方法,您会根据它获得不同的工件。看来目前这个案例,Tesseract 捡到了噪音。

还要注意 JPG 和文本 don't go well with each other。您应该考虑使用无损格式,例如 PNG。