使用开源的card.io 扫描识别银行卡
最近遇到一个需要调研的需求:识别银行卡信息
具体要求如下:
如果识别出了银行卡信息,那么就把银行卡信息和银行卡图片 发送到后台
如果 识别不了 最好把银行卡图片 截取下拉,送给后台,让后台去识别。yige
在github上看到一个card.io的项目,于是down下来 看了一下,
识别效果:目前只识别出了 带突起银行卡号的 卡,具体还要看银行卡的破损程度。
如果卡号 位置( 也就是数字位置 )上门有金色的 或者高亮的 涂色,并且没有磨损,那么久很容易识别,比如新卡。
可以识别
如果 卡号位置 磨损了 ,导致卡号 高亮部分不明显,那么就识别不了 了。
识别不了
具体使用:
1:引入card.io
compile 'io.card:android-sdk:5.5.1'
2 : (在onclick 中)加入开启扫描的代码
Onclick:{
scan(true);
}
/*** 是否只识别卡 轮廓 图形。true:是, false:不仅识别轮廓图形 ,而且识别卡信息。** @param isOnlyScanCard*/public void scan(boolean isOnlyScanCard) {Intent intent = new Intent(this, CardIOActivity.class) // .putExtra(CardIOActivity.EXTRA_HIDE_CARDIO_LOGO, true)//去除水印 // .putExtra(CardIOActivity.EXTRA_SUPPRESS_MANUAL_ENTRY, true)//去除键盘 // .putExtra(CardIOActivity.EXTRA_LANGUAGE_OR_LOCALE, "zh-Hans")//设置提示为中文 // .putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, true) // .putExtra(CardIOActivity.EXTRA_SCAN_RESULT, true) // .putExtra(CardIOActivity.EXTRA_RETURN_CARD_IMAGE, true) // .putExtra(CardIOActivity.EXTRA_REQUIRE_CARDHOLDER_NAME, false)//当扫描卡 成功以后 触发 onCardDetected方法,true: 直接返回图 false:去下个界面校验卡信息.putExtra(CardIOActivity.EXTRA_SUPPRESS_SCAN, isOnlyScanCard)//是否生成图片的配置//根据源代码 分析,必须加如下组合配置,才能返回银行卡图片对象bitmap//if (origIntent != null && origIntent.getBooleanExtra(EXTRA_SUPPRESS_CONFIRMATION, false)) { 生成图片}.putExtra(CardIOActivity.EXTRA_SUPPRESS_CONFIRMATION, true)//是否返回图片 配置1// if (intent == null || !intent.hasExtra(EXTRA_CAPTURED_CARD_IMAGE)) { return null;}.putExtra(CardIOActivity.EXTRA_CAPTURED_CARD_IMAGE, true)//是否返回图片 配置 2:源码没查到,单必须加.putExtra(CardIOActivity.EXTRA_RETURN_CARD_IMAGE, true)// .putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, true) // default: sdk的银行卡信息验证页面 可以不要//控制用户是否被提示卡的cvv信息,(baidu :银行卡cvv信息).putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, false);// default: false// 扫描银行卡后会调整到银行卡的校验页面,让用户 输入日期校验,这里就是控制是否需要校验, // .putExtra(CardIOActivity.EXTRA_REQUIRE_POSTAL_CODE, false); // .putExtra("debug_autoAcceptResult", true);startActivityForResult(intent, 300);}
//扫描卡的详细信息public void reScanCardInfo() {new Handler().postDelayed(new Runnable() {@Overridepublic void run() {//扫描卡的详细信息scan(false);}}, 500);}
3: 在onActivityResult 中接收扫描结果
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);String outStr = new String();if ((requestCode == 300) && data != null) { // && data.hasExtra(CardIOActivity.EXTRA_SCAN_RESULT)) {if (data.hasExtra(CardIOActivity.EXTRA_SCAN_RESULT)) {//扫描出结果信息了:CreditCard result = data.getParcelableExtra(CardIOActivity.EXTRA_SCAN_RESULT);if (result != null) {outStr += "Card number: " + result.cardNumber + "\n"; // Bitmap bitmap = result.getCardType().imageBitmap(this); // ivBankcard.setImageBitmap(bitmap);//Bitmap returnBitmap = CardIOActivity.getCapturedCardImage(data);ivBankcard.setImageBitmap(returnBitmap);}Toast.makeText(this, outStr, Toast.LENGTH_LONG).show();} else if (resultCode == CardIOActivity.RESULT_SCAN_SUPPRESSED) {//只扫描(识别)出了card图片,并没有完整扫描出卡信息Bitmap returnBitmap = CardIOActivity.getCapturedCardImage(data);ivBankcard.setImageBitmap(returnBitmap);//接着扫描 卡的详细信息。reScanCardInfo();}} else {Toast.makeText(this, "error", Toast.LENGTH_LONG).show();}}
使用开源的card.io 扫描识别银行卡相关推荐
- Android手机扫描识别银行卡技术
Android手机扫描识别银行卡技术 1.Android手机扫描识别银行卡技术背景分析 手机支付.网络支付已经非常成熟,消费者已经习惯了使用手机支付宝进行支付,用手机银行进行消费和转账.但是,整个线上 ...
- APP拍照扫描识别银行卡SDK
关键词:银行卡识别,银行卡号识别,ocr银行卡识别,银行卡识别SDK APP拍照扫描识别银行卡SDK 在互联网和大数据时代,为了高效.快速的抢占新增客户市场,银行.保险.移动支付.财务管理等众多领域. ...
- 资深工程师专业评测--安卓免费的银行卡识别SDK,华为 HMS MLKit 和Card IO哪个好?
1 前言 前面有两篇文章分别介绍过华为HMS MLKit的银行卡识别功能,第一篇是写的怎么简单集成银行卡识别,实现银行卡绑定功能,第二篇又给大家介绍了下银行卡识别和其它文本类识别服务之间的区别和关系, ...
- Android 银行卡扫描识别获取卡号
用card.io 实现的银行卡扫描,免费 Card.io是让手机摄像头获取信用卡的信息,中间利用了OCR(光学字符识别)的扫描技术返回结果,它还推出了SDK(软件开发包),让开发者们可以把card.i ...
- Android笔记(翻译):card.io SDK for Android银行卡扫描
card.io 提供快速,易于信用卡扫描在移动应用程序. 集成说明: 卡片扫描的要求 1.配置有后置的摄像头 2.Android系统在Android2.2以上,SDKversin8 可以手动输入银行卡 ...
- Android 笔记:识别银行卡,获取银行卡卡号
这个demo是用的card.io 提供的SDK,识别准确率比较高 先看一下效果图: 扫描界面: 识别成功界面 开始界面 在这里说一下集成的两种方式, 1.直接把途中的文件解压开复制到工程目录下的lib ...
- Android智能识别 - 银行卡区域裁剪
在真正开始看这篇文章之前,希望我们能先去了解一下这篇文章<NDK开发前奏 - 实现支付宝人脸识别功能>,此篇文章阅读起来可能会有些许难度,因此我们只要能看懂 c/c++ 语法,能跟上我分析 ...
- Android实现银行卡号扫描识别
现在有好多扫描识别银行卡号的SDK都是收费的,但是也有不收费的,但是有一定的问题,就是那种印刷的银行卡号扫描不出来,希望哪位大神指导原因给解释下,这个不收费的SDK就是card.io-Android- ...
- 文档扫描识别——基于M-LSD线段检测的拍照文档校正
前言 1.拍照文档扫描识别是办公类App里面最常用到的的一类应用,市面上有很多相关的App,及主要技术点有几个要用到图像处理,有边缘检测校正,文档滤镜,和OCR. 2.关于边缘文档连续检测,有用传统算 ...
最新文章
- Cell Reports | 佩戴假肢后,真的能产生正确位置的触觉感吗?研究人员表示并不能...
- 【MyBatis】MyBatis中,大于号、小于号的两种表达方式
- C++ Applications
- linux 内核 三天吐血,编译安装——吐血经验,内附脚本
- 关于Python生成器的一个小问题(StopIteration)
- 解决SQLServer事物日志过大的方法
- 有关Silverlight浮动窗体组件的研究——Silverlight学习笔记(3)
- vim中 E212:无法打开并写入文件的解决办法
- J2EE项目架构最佳实践
- Aria2 一键安装管理脚本 与Snap安装Nextcloud 与离线下载百度云
- 码农面试智力题及答案
- 分类问题的评价指标(Precision、Recall、Accuracy、F1-Score、Micro-F1、Macro-F1)以及混淆矩阵、ROC曲线
- 2018-2019-20172329 《Java软件结构与数据结构》第五周学习总结
- 麦块怎么安装不了java_麦块下载安装
- iconfont字体图标下载
- 如何设计一个成功的网站
- Ubuntu安装QT Creater和配置
- Servlet服务器端程序
- 威纶weinview EB8000软件
- DevOps成就卓越