【发布时间】:2021-03-19 14:40:34
【问题描述】:
我正在尝试分析视频中的页脚并检索当前页码。我得到了框架集合,但我正在努力阅读页码本身,使用 EasyOCR。
我已经尝试过使用 pytesseract,但效果不佳。我误解了数字:10 被识别为 113,6 被识别为 41,依此类推。总体而言,它非常不一致,即使我使用灰度、阈值和裁剪正确格式化了我的输入图像(仅分析页脚的页码区域)。
代码如下:
def getPageNumberTest(path, psm):
image = cv2.imread(path)
height = len(image)
width = len(image[0])
# the height of the footer
footerHeight = 90 # int(height / 15.5)
# retrieve only the footer from the image
cropped = image[height-footerHeight:height,0:width]
results = reader.readtext(cropped)
这给了我以下输出:
是否有我缺少的设置?有没有办法指示 EasyOCR 只查找数字? 感谢任何帮助或提示!
编辑:
在对数字图像进行了一些优化之后,我现在回到开始,根本没有优化图像。剩下的就是转换为灰度和调整大小。
这是正常输入的样子:
但结果是:
这很奇怪,因为对于大多数数字(尤其是个位数)来说,这可以完美运行,产生超过 95% 的确定性...
我尝试使用 cv2.filter2D() 去模糊、阈值化、去噪、模糊、...
例如,当我使用阈值处理时,我的输出如下所示(忽略“1”,同样适用于单个数字“1”):
我查看了模式匹配,这不是一个选项,因为我事先不知道页码形状...
【问题讨论】:
-
我试过了,输出还是不一致
-
请在您的问题中添加未经修改的原始图像,并尽可能尝试使用更高分辨率的图像。
-
我编辑了我的问题。我无法获得更高的分辨率,因为这些页面是从视频中截取的......
标签: python ocr data-conversion scanning