我正在尝试制作像Card.io这样的信用卡ocr引擎。但是在没有噪声的情况下将卡预处理成二进制图像非常困难。我使用SWT算法,但它不适用于所有卡。有各种各样的信用卡具有低对比度背景和浮雕数字。很难设计出一种通用算法来对OCR进行预处理。所以任何一个人都有这种卡过程的经验。下面的图片是卡片的例子,我很难预处理
答案 0 :(得分:0)
事实上,信用卡是有目的的,因此难以阅读(因此要处理)。我能做的最好的事情是,将它们转换为灰度并添加一些水平的索贝尔滤波器,然后可以进行更多的转换。而且仍然难以仅用数字提取二进制图像......而且从图像到图像肯定会有不同的结果...... 祝你好运!
答案 1 :(得分:-1)
我知道我来晚了,但是在此找到了adrian rosebrock的博客中的解决方案-
https://www.pyimagesearch.com/2017/07/17/credit-card-ocr-with-opencv-and-python/
该技术是使用opencv执行模板匹配 然后使用灰度,形态学操作和阈值过滤对信用卡图像进行过滤。
然后我们可以找到感兴趣的轮廓,即轮廓与高度和宽度的比例有关。
一旦我们有了感兴趣的轮廓(轮廓与数字组),我们可以再次找到并提取单个数字。然后我们可以将这些数字与模板图像中的数字进行比较。
这样我们就可以对信用卡进行OCR了