我正在尝试制作一个像Card.io一样的信用卡OCR引擎。但是,预处理带有噪音的卡片为二进制图像非常困难。我使用SWT算法,但它并不能很好地处理所有类型的卡片。由于信用卡的背景对比度低且有凸起的数字,因此设计一个通用的OCR预处理算法非常困难。请问是否有人在这方面有经验?下面的图片是一个我难以预处理的卡片示例:
![enter image description here](https://istack.dev59.com/7JbYj.webp)
![enter image description here](https://istack.dev59.com/dpxut.webp)
我知道我来晚了,但是在阅读Adrian Rosebrock的博客文章之后,我找到了解决方案 -
https://www.pyimagesearch.com/2017/07/17/credit-card-ocr-with-opencv-and-python/
技术是使用OpenCV进行模板匹配,然后使用灰度、形态学操作和阈值处理来过滤信用卡图像。
然后我们可以找到我们感兴趣的轮廓,也就是具有相关高宽比的轮廓。
一旦我们获得了我们感兴趣的轮廓(数字组合的轮廓),我们可以再次查找并提取单个数字。然后我们可以将这些数字与我们模板图像中的数字进行比较。
通过这种方式,我们可以对信用卡进行OCR识别。