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

标签 python opencv tesseract

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

这是踢球者。如果我在 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.”:

enter image description here

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

enter image description here

最佳答案

这两个图像确实不同。

如果将它们插入 GIMP,并将图层叠加模式设置为 Subtract ,你得到这个:

difference

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

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

考虑到您的图片是 JPG,这是有损压缩的。
有几种方法可以制作压缩表,你会根据它得到不同的工件。看来,当前的情况下,Tesseract 拾起了噪音。

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

关于python - 几乎相同的 Tesseract 图像解析不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55929177/

相关文章:

linux - 构建uchar.h文件和ICU版本相关的训练工具时出现Tesseract错误

python - 类型错误 : expected string or bytes-like object;

python - 比较两个数据帧并保留重叠的行

c++ - OpenCV 画圆圈跟踪球问题

c++ - Opencv 静态链接给出错误

Android Studio 上的 Android Tesseract OCR

python - 使用 AST 和 Tree walker 来翻译 DSL,而不是直接从解析器语法解析和翻译对象,有什么优点?

python - 如何通过 app.run() 将任意参数传递给 Flask?

c++ - OpenCV C++ VS2010 : FindContours throws exception

c - Tesseract-OCR培训问题