主要步骤如下:
1.取图:目前主要是采用视频预览方式,对视频进行抽针,取一针清晰的彩色图像。也就是手机相机扫描界面在实时取图,目前主要的是通过检测边框来判断银行卡是否已经放到指定框内,这样保证能取到质量比较好的图片。
2.图像预处理:这里主要是去噪(包含灰度处理)和二值化,最终只留下黑色和白色。
3.行业定位:二值化完成后,需要定位到银行卡号的行业为主。
4.字符切分:将银行卡号单个数字进行切分(切分其实也是OCR技术中一大难点)
5.字库比对识别:这一步只有是将切分完成后的单数字与字库中的数值模版进行对比,取置信度最高值。
6.输出前校验:主要是使用Luhn算法进行校验,校验正确后进行输出。(这里详细说下Luhn算法:所有银行发的银行卡都是有校验规则的,卡号最好一位是校验码。主要符合以下规则:
1)从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。
2)从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。
3)将奇数位总和加上偶数位总和,结果应该可以被10整除。)
7:输出:输出字符串。