Android实现身份证识别(印刷文字识别-身份证识别-阿里云)

在做实名认证的时候客户要求要自动识别身份证上的个人信息,我们使用的是阿里云的OCR印刷文字识别-身份证识别

阿里云的文档写的还是很清楚的,按照文档一步步来就可以了

1、调用地址:https://dm-51.data.aliyun.com/rest/160601/ocr/ocr_idcard.json
2、请求方式:POST
3、请求参数:{ "image": "图片二进制数据的base64编码/图片url", "configure": {"side":"face"} #身份证正反面类型:face/back }

项目内用的请求方式是 Retrofit+RxJava,懒,就直接原样搬过来了
第一步:

 //Retrofit请求方式就不做过多解释了@POSTfun ocr(@Url url: String, @HeaderMap headerMap: Map<String, String>, @Body body: RequestBody): Observable<IdentityCardBean>

第二步:

    companion object{/*** path:图片地址* side:身份证正反面类型:face/back* listener:回调*/fun ocrImg(patha:String,side:String, listener: Ocr){val host = "http://dm-51.data.aliyun.com"val path = "/rest/160601/ocr/ocr_idcard.json"val appcode = "你的应用在阿里云上Appcode"val imgFile = pathaval side3 = side//如果是Url直接使用就可以,这里是本地文件需要进行base64编码val  imgBase64 = FileUtils.fileToBase64(File(imgFile))val headers = HashMap<String, String>()//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105headers["Authorization"] = "APPCODE $appcode"val bodyMap = HashMap<String,String>()bodyMap["image"] = imgBase64bodyMap["configure"] = "{\"side\":\"${side3}\"}"//请求参数格式是json类型的,这里用Gson将Map转成了Gsonval bodys = Gson().toJson(bodyMap)val requestBody = MultipartBody.create(MediaType.parse("application/x-www-form-urlencoded; charset=utf-8"),bodys)//根据请求地址,方式,参数进行请求RetrofitManager.service.ocr(host+path,headers, requestBody).compose(SchedulerUtils.ioToMain()).subscribe({if (it.success){listener.Success(it)}else{listener.onFail("请选择清晰的图片",0)}},{listener.onFail("请选择清晰的图片",ExceptionHandle.errorCode)})}}

第三步:

//调上面我们写的请求方法,根据返回的格式进行解析就可以了weixinDialogInit("正在识别",true)OCRUtils.ocrImg(compressPath1!!, "face", object : OCRUtils.Ocr {override fun Success(bean: IdentityCardBean) {cancelWeiXinDialog()tv_id_card_name.text = bean.nametv_id_card_id.text = bean.num}override fun onFail(msg: String, code: Int) {cancelWeiXinDialog()showToast(msg)}})

需要注意的是,如果身份证号是假的,那是识别不出来的,返回的会是null

Android实现身份证识别相关推荐

  1. android ocr 身份证识别

    ocr opencv 想必做过程图像识别的同学们都对这两个词不陌生吧. ocr (optical character recognition ,光学字符识别) 是指电子设备(例如扫描仪或数码相机)检查 ...

  2. Android OpenCV 身份证识别实战

    1.识别流程 手机获取身份证图片 计算机图片身份证号码所在的区 需要用到OpenCV,进行图像处理 OCR文本训练 记忆样本移植 图像文字识别 使用Tesseract-OCR文字 所以身份证别的关键: ...

  3. 手机扫描身份证识别AND行驶证识别

    本文关键词:身份证识别 行驶证识别 手机扫描识别身份证 手机扫描识别行驶证 Android系统身份证识别 Android系统行驶证识别 移动端身份证识别 移动端行驶证识别 目前很多地方都要用到身份证. ...

  4. android ocr识别源码_身份证识别OCR解决手动输入繁琐问题

    随着互联网金融的的发展,越来越多的互联网金融公司都推出了自己的金融APP,这些APP都涉及到个人身份证信息的输入认证,如果手动去输入身份证号码和姓名,速度非常慢,且用户体验非常差. 为了提高在手机移动 ...

  5. uniapp生成android并调用第三方sdk的拍照进行身份证识别

    一.需求 uniapp生成android,集成商汤科技的android的sdk识别身份证信息 二.开发思路 uniapp使用Dcloudx软件的"原生打包",然后集成到androi ...

  6. Android:基于OpenCV实现身份证识别(C++)——移植图像算法

    系列文章目录 第一章 Android:基于OpenCV实现身份证识别(C++)--图像处理 第二章 Android:基于OpenCV实现身份证识别(C++)--移植图像算法 文章目录 系列文章目录 前 ...

  7. Android 集成百度身份证识别

    最近因为项目需要实现身份证识别与读取,对百度的文字识别进行了集成.很多地方都是参照官方文档来写,能力强的老哥可以去官方文档自行查阅. 第一步:创建项目,下载SDK https://cloud.baid ...

  8. Android拍照扫描识别身份证信息SDK

    Android拍照扫描识别身份证信息SDK 移动互联网是大趋势? 随着智能手机的硬件不断优化,移动互联网及应用大范围普及,互联网+各行各业,跨界.融合.创新,市场瞬息万变,有野心的企业和人.技术都在拼 ...

  9. Android | 教你如何在安卓上实现二代身份证识别,一键实名认证

    目录 前言 场景 开发前准备 android studio 安装 在项目级gradle里添加华为maven仓 在应用级的build.gradle里面加上SDK依赖 在AndroidManifest.x ...

最新文章

  1. ECEF rectangular coordinate system(ECEF直角坐标系)
  2. latex 公式转图片
  3. boost::math模块使用指定宽度的浮点 typedef估中等复杂的数学函数的测试程序
  4. struts2自动接收表单数据
  5. linux上怎么修改hostname
  6. 互联网晚报 | 9月16日 星期四 | 网易云音乐发布“村民证”;阿里社区电商品牌升级为“淘菜菜”;高德打车上线“实景上车点”...
  7. 创建mysql制定字符集语句_创建数据库指定字符集语句
  8. 全球开发者大调查:编程始于少年,Python 成最爱
  9. [原创]在ObjectDataSource中使用自定义Web控件提供查询参数
  10. Eclipse 内部启动 Tomcat,浏览器访问出错的解决方法
  11. android判断循环,android kotlin学习之路 kotlin中的分支判断与循环判断(2)
  12. 万娟 白话大数据和机械学习_《白话大数据与机器学习》.pdf
  13. iOS-成为或取消第一响应者
  14. presto web UI介绍
  15. iTunes无法验证服务器s.mzstatic.com的身份 服务器证书无效 解决办法
  16. 一款Excel导入导出解决方案组成的轻量级开源组件
  17. 5 封装性和private关键字
  18. mysql 事件及定时器
  19. SMT阻容件常用规格参数
  20. 著名数据恢复工具有哪些是好用的

热门文章

  1. Liunx中shell命令行和权限的理解
  2. python环境搭建及应用
  3. CSDN周刊:Google Cloud大规模宕机;中国正式进入 5G 商用元年!苹果发布SwiftUI
  4. 请捎去我的祈祷和祝福
  5. 安装kubectl失败:error: unpacking of archive failed on file /usr/bin/kubectl: cpio: rename
  6. 面试大全 | C语言高级部分总结,2.6万字长文
  7. 【转】Ceph对象存储(rgw)的IPv6环境配置
  8. 大物实验计算弹性模量_大学物理实验报告(清华大学)拉伸法测弹性模量.doc...
  9. 通过指令获取tsc标签打印机的状态
  10. mac-lol.tk syjc.html,苹果 MacBook Air笔记本一键u盘装系统win10教程