支付宝钱包的扫描银行卡是如何实现的


最近在做一个扫描卡号密码的功能,虽然实现了(用的tesseract-ocr来实现的),但是密码部分扫描成功率太低了,如果密码层的膜没有刮干净,那么就不容易识别,但是支付宝钱包里面扫描银行卡的功能,颜色几乎一样,但是照样可以识别成功,而且正确率还很好,想问一下支付宝是如何实现的,或者有没有更好的办法来解决。

Androidanimation java

狂热粉真可怕 11 years, 7 months ago

采用opencv,你可以尝试以下流程:

  1. 图象预处理,压缩图像大小
  2. 转彩色图像为灰度图像
  3. 识别银行卡区域
  4. 图象纠偏(就是把有可能歪着的卡放正,这一步骤也可以忽略)
  5. 卡号区域识别
  6. 有可能需要调节对比度,让卡号更清晰
  7. 卡号识别

要同时支持iOS和Android平台,你可以使用C++语言实现算法。Xcode可以很好地支持Objective-C语言和C++语言混编,只需要将相关的源文件扩展名从.m改为.mm即可。而Android平台所采用的Java语言,也支持通过JNI的方式来调用C++的代码。

無雙教主拜亞蘭 answered 10 years ago

Your Answer