如何预处理信用卡并提取无背景数字

7
我正在尝试制作一个像Card.io一样的信用卡OCR引擎。但是,预处理带有噪音的卡片为二进制图像非常困难。我使用SWT算法,但它并不能很好地处理所有类型的卡片。由于信用卡的背景对比度低且有凸起的数字,因此设计一个通用的OCR预处理算法非常困难。请问是否有人在这方面有经验?下面的图片是一个我难以预处理的卡片示例: enter image description here enter image description here

1
我无法想到任何合法的理由来进行CC OCR。 - Filipe YaBa Polido
1
就像card.io一样,这是移动设备支付的新方式。我只想谈论技术,不想在这里讨论法律。 - Jin Zhang
2个回答

0
问题在于信用卡被设计成很难读取(因此很难处理)。我所能做的最好的办法是将它们转换为灰度图像,添加一些水平Sobel滤波器,然后可能再进行一些变换。即使这样,也很难仅提取带有数字的二进制图像...而且不同的图像肯定会有不同的结果... 祝你好运!

-1

我知道我来晚了,但是在阅读Adrian Rosebrock的博客文章之后,我找到了解决方案 -

https://www.pyimagesearch.com/2017/07/17/credit-card-ocr-with-opencv-and-python/

技术是使用OpenCV进行模板匹配,然后使用灰度、形态学操作和阈值处理来过滤信用卡图像。

然后我们可以找到我们感兴趣的轮廓,也就是具有相关高宽比的轮廓。

一旦我们获得了我们感兴趣的轮廓(数字组合的轮廓),我们可以再次查找并提取单个数字。然后我们可以将这些数字与我们模板图像中的数字进行比较。

通过这种方式,我们可以对信用卡进行OCR识别。


1
欢迎提供解决方案的链接,但请确保您的答案即使没有链接也是有用的:在链接周围添加上下文,以便其他用户了解它的内容和原因,然后引用您链接的页面中最相关的部分,以防目标页面不可用。仅仅提供链接的答案可能会被删除。 - Mithical
@Mithrandir 我编辑了答案。我觉得这已经足够了,因为其他的都在博客中解释了。 - Devashish Prasad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接