10分钟集成一个简单的银行卡识别Demo(华为HMS Core MLKit)

现在APP添加银行卡识别的需求越来越多,今天在GitHub上看到了card.io这一个开源银行卡识别,下载使用后发现不支持许多国内银行卡,然后发现华为的**HMS Core MLKit**机器学习服务银行卡识别SDK比较好用,于此,记录下集成步骤。

开发准备

1、新建个empty activity(操作略过)

2、在项目级的build.gradle中添加华为的maven.

    maven {url 'http://developer.huawei.com/repo/'}

在这里插入图片描述

3、在项目的应用级的build.gradle中添加华为的银行卡识别所需要的依赖

    // 引入基础SDK
    implementation 'com.huawei.hms:ml-computer-vision-bcr:1.0.3.303'
    // 引入银行卡识别plugin包
    implementation 'com.huawei.hms:ml-computer-card-bcr-plugin:1.0.3.300'
    // 引入银行卡识别模型包
    implementation 'com.huawei.hms:ml-computer-card-bcr-model:1.0.3.300'

	//权限
    implementation 'pub.devrel:easypermissions:3.0.0'

这里我添加了权限依赖,不然demo没权限无法运行

4、别忘了在AndroidManifest文件添加权限

1、在AndroidManifest.xml文件中添加权限(相机和存储权限)

 	<!--相机权限-->
    <uses-permission android:name="android.permission.CAMERA" />
    <!--使用存储权限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2、增量添加模型自动下载(加不加无所谓),也就是华为手机在华为应用商城下载后会自动更新最新的机器学习模型。有需要的可以添加到AndroidManifest中,代码如下

    <meta-data
        android:name="com.huawei.hms.ml.DEPENDENCY"
        android:value= "bcr"/>
    <!--If multiple models are required,set the parameter as follows:
    android:value="object,ocr,face,label,icr,bcr,imgseg"-->

5、开始最重要的代码实现模块了

一、简单的用一个ImgView和一个TextView搭建一个界面(不详细描述)
二、调用
   private void startCaptureActivity(MLBcrCapture.Callback callback) {
        MLBcrCaptureConfig config = new MLBcrCaptureConfig.Factory()
                // 设置银行卡识别期望返回的结果类型。
//                 MLBcrCaptureConfig.SIMPLE_RESULT:仅识别卡号、生效期信息。
                // MLBcrCaptureConfig.ALL_RESULT:识别卡号、生效期、发卡行和卡类别等信息。
//                .setResultType(MLBcrCaptureConfig.RESULT_SIMPLE)
                .setResultType(MLBcrCaptureConfig.RESULT_ALL)
                // 设置识别界面横竖屏,支持三种模式:
                // MLBcrCaptureConfig.ORIENTATION_AUTO: 自适应模式,由物理感应器决定显示方向。
                // MLBcrCaptureConfig.ORIENTATION_LANDSCAPE: 横屏模式。
                // MLBcrCaptureConfig.ORIENTATION_PORTRAIT: 竖屏模式。
                .setOrientation(MLBcrCaptureConfig.ORIENTATION_AUTO)
                .create();
        MLBcrCapture bankCapture = MLBcrCaptureFactory.getInstance().getBcrCapture(config);
        bankCapture.captureFrame(this, callback);
    }

直接点击图片调用上面代码

三、返回结果
      private MLBcrCapture.Callback callback = new MLBcrCapture.Callback() {
        @Override
        public void onSuccess(MLBcrCaptureResult bankCardResult){
            // 识别成功处理。
            textView.setText("银行卡号"+bankCardResult.getNumber()
                    +"银行类型"+bankCardResult.getType()
                    +"到期"+bankCardResult.getExpire()
                    +"银行种类"+bankCardResult.getIssuer());
            
            //只显示卡号的图片
//            imageView.setImageBitmap(bankCardResult.getNumberBitmap()); 
            //显示对应的银行卡原图
            imageView.setImageBitmap(bankCardResult.getOriginalBitmap());
        }
        @Override
        public void onCanceled(){
            // 用户取消处理。
        }
        // 识别不到任何文字信息或识别过程发生系统异常的回调方法。
        // retCode:错误码。
        // bitmap:检测失败的卡证图片。
        @Override
        public void onFailure(int retCode, Bitmap bitmap){
            // 识别异常处理。
            Toast.makeText(MainActivity.this,retCode+"",Toast.LENGTH_SHORT).show();
        }
        @Override
        public void onDenied(){
            // 相机不支持等场景处理。
        }
    };

就这样。没了。权限的代码就不贴了。

demo地址

https://download.csdn.net/download/huangjinyong1994/16345900

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值