使用Python,OpenCV进行卡类型及16位卡号数字的OCR
这篇博客将介绍如何通过OpenCV和Python使用模板匹配执行光学字符识别(OCR)。具体来说,将使用Python+OpenCV实现模板匹配算法,以自动识别卡的类型和以及16位卡号数字。
在比较数字时,模板匹配是一种非常快速的方法。
为此将图像处理管道分为4个步骤:
- 通过各种图像处理技术检测信用卡上四组四个数字,包括形态学操作、阈值和轮廓提取。
- 从四个分组中提取每个单独的数字,得到16个需要分类的数字。
- 将模板匹配应用于每个数字,将其与OCR-A字体进行比较,以获得数字分类。
- 检查信用卡号的第一位数字以确定发卡公司。
在对信用卡OCR系统进行评估后,发现如果发卡信用卡公司使用OCR-A字体作为数字,该系统的准确率为100%。 优化可以考虑在野外采集信用卡的真实图像,并训练机器学习模型(通过标准特征提取或训练或卷积神经网络),以进一步提高此系统的准确性。
1. 效果图
首先了解一下卡的组成: