Android身份证识别demo,文字识别

百度云链接:https://console.bce.baidu.com/?fromai=1#/aip/overview

1、1首先去百度文字识别创建应用,获取ak和sk

 

 

 配置ak和sk

 

 

1、2 jniLibs文件夹复制过去

 

 

2、识别身份证信息方法:

/**** 解析身份证图片** @param idCardSide 身份证正反面* @param filePath   图片路径*/
private void recIDCard(final String idCardSide, String filePath) {Log.i("charge ID card", idCardSide);IDCardParams param = new IDCardParams();param.setImageFile(new File(filePath));// 设置身份证正反面param.setIdCardSide(idCardSide);// 设置方向检测param.setDetectDirection(true);// 设置图像参数压缩质量0-100, 越大图像质量越好但是请求时间越长。 不设置则默认值为20param.setImageQuality(40);OCR.getInstance().recognizeIDCard(param, new OnResultListener<IDCardResult>() {@Overridepublic void onResult(IDCardResult idCardResult) {Log.i("charge ID card", String.valueOf(idCardResult));if (idCardResult != null) {if (idCardSide.equals("back")) {String signDate = "";String expiryDate = "";String issueAuthority = "";if (idCardResult.getSignDate() != null) {signDate = idCardResult.getSignDate().toString();}if (idCardResult.getExpiryDate() != null) {expiryDate = idCardResult.getExpiryDate().toString();}if (idCardResult.getIssueAuthority() != null) {issueAuthority = idCardResult.getIssueAuthority().toString();}mContent.setText("签发机关: " + issueAuthority + "\n\n" +"有效期限: " + signDate + "-" + expiryDate + "\n\n");}else {String name = "";String sex = "";String nation = "";String num = "";String address = "";if (idCardResult.getName() != null) {name = idCardResult.getName().toString();}if (idCardResult.getGender() != null) {sex = idCardResult.getGender().toString();}if (idCardResult.getEthnic() != null) {nation = idCardResult.getEthnic().toString();}if (idCardResult.getIdNumber() != null) {num = idCardResult.getIdNumber().toString();}if (idCardResult.getAddress() != null) {address = idCardResult.getAddress().toString();}mContent.setText("姓名: " + name + "\n\n" +"性别: " + sex + "\n\n" +"民族: " + nation + "\n\n" +"身份证号码: " + num + "\n\n" +"住址: " + address + "\n\n");}}}@Overridepublic void onError(OCRError ocrError) {Toast.makeText(DetailActivity.this, "识别出错,请查看log错误代码", Toast.LENGTH_SHORT).show();Log.d("MainActivity", "onError: " + ocrError.getMessage());}});}

 

识别效果

在线回复bug:qq1085220040

demo链接:https://download.csdn.net/download/meixi_android/11014640

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jq消除网页滚动条

网页有些时候需要能滚动的效果&#xff0c;但是不想要滚动条&#xff0c;我就遇到了这样的需求。自己用jq写了一个垂直滚动条。 纯css也可以实现 .box::-webkit-scrollbar{display:none} 但是edge和Firefox不兼容&#xff0c;自己想了一下只要监听滚轮事件&#xff0c;用jq写应…

5、Flutter 实现 ViewPager、bottomNavigationBar 界面切换

1、前言 首先我们想一下&#xff0c;如果在 Android 中实现 布局切换&#xff0c;通常的思路是&#xff1a; 做一个 viewpager一组 Fragment每个 Fragment 绑定一个 xml最后填充至 viewpager2、Flutter 实现 上边提到的用安卓原生做&#xff0c;思路是很明确&#xff0c;但是代…

Android 应用内实现导航页面,接入百度SDK内置导航,高德SDK内置导航

1、首先到百度地图开放平台创建应用&#xff0c;获取应用AK http://lbsyun.baidu.com/apiconsole/key 2、到百度语言平台创建应用&#xff0c;获取Secret Key和语言APP ID http://yuyin.baidu.com/app 3、到百度地图开放平台下载Android 导航SDK https://pan.baidu.com/s/1z…

Python高级用法总结

Python很棒&#xff0c;它有很多高级用法值得细细思索&#xff0c;学习使用。本文将根据日常使用&#xff0c;总结介绍Python的一组高级特性&#xff0c;包括&#xff1a;列表推导式、迭代器和生成器、装饰器。 列表推导&#xff08;list comprehensions&#xff09; 场景1&…

工作241:判断数组里面是否有某个值

<el-form class"left-right"><el-form-item label"分发账号名称" label-width"100px"><el-select v-model"form.index" placeholder"选择绑定的分发账号"><el-option :disabled"item.status||Ro…

6、Flutter Error waiting for a debug connection: ProcessException: adb did not report f(转)

1、错误信息 Error waiting for a debug connection: ProcessException: adb did not report forwarded port 2、解决方法 升级adb&#xff0c;其实是更新SDK Platform-Tools就可以了。 步骤&#xff1a;打开 Android SDK >>> SDK Tools 勾选 Android SDK Flatform-…

特征选择的3种方法

当数据维数比较大时&#xff0c;就需要进行降维&#xff0c;特征选择是降维的一种主要方式&#xff0c;又包括3种方法&#xff1a;Filter、Wrapper和Enbedding。 1. Filter 过滤器方法&#xff0c;这种方法首先选定特征&#xff0c;再来进行学习。根据每一个属性的一些指标&…

前端学习(2710):重读vue电商网站30之左侧菜单栏图标设计

我们想要的效果如下&#xff1a; 如何设计&#xff1f; 首先&#xff0c;我们可以在 data 中定义一个对象&#xff0c;对应于每一个菜单选项的 id 然后通过 for 循环遍历每一个菜单选项的 id即可。

Android运行时异常 couldn't find xx.so

Android 关于导入module&#xff0c;运行时错误 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.txjifei.mapclient.liteapp-fp0FTs4C57uV3aLogQRvYA/base.apk"],nativeLibraryDirectories[/data/app/com.txj…

restful api

1、前言 前几天 Daniel 给我们的分享中&#xff0c;提到了 restful api&#xff0c;然后回去重新翻了一遍笔记&#xff0c;今天整理出来吧。 2、是什么 如果你没接触过 restful&#xff0c; 千万不要把它当成一门技术&#xff0c;他是一种请求风格&#xff0c;接下来看个例子&a…

Django在form提交CSRF验证失败. 相应中断问题

CSRF验证失败. 相应中断. 1&#xff09;.首先&#xff0c;我们可以先看一下出现问题的所在的原因。 Your browser is accepting cookies.The view function passes a request to the templates render method.In the template, there is a {% csrf_token %} template tag insid…

4、jeecg 笔记之 自定义显示按钮 (exp 属性)

1、需求 先看一下需求吧&#xff0c;我们希望 datagrid 操作栏中的按钮&#xff0c;可以根据条件进行动态显示。 2、实现 其实 jeecg 提供了一个属性 - exp &#xff0c;通过该属性即可实现。 <t:dgFunOpt funname"startInspect(id,mcaPhone)" exp"mcaStatus…

AngularJs自学心得

1.angularjs的SEO问题解决方案 我的前端用到angularjs&#xff0c;服务器用到nginx。 大体流程&#xff1a; nginx服务器检测到爬虫访问&#xff0c;跳转到专门的url&#xff0c;此url是angularjs已经渲染过后的页面。非常的简单。 a).首先是angularjs的渲染问题 angular添加一…

Android 人脸识别进行实名验证demo

实名验证简介&#xff1a;http://ai.baidu.com/docs#/Face-PersonVerify-V3/top 1、首先到百度云平台——人脸识别项创建应用 https://console.bce.baidu.com/?fromai1#/aip/overview 2、创建应用之后、下载SDK SDK链接&#xff1a;https://download.csdn.net/download/meix…

5、jeecg 笔记之 minidao 条件判断

1、前言 我们知道 mybatis 中的动态sql语句是基于 OGNL 表达式的。额外补充一点&#xff1a;mybatis 中的 #{} 和 ${} &#xff0c;可直接跳过。#{}表示一个占位符号&#xff0c;#{}接收输入参数&#xff0c;类型可以是简单类型&#xff0c;pojo、hashmap。 如果接收简单类型&a…

python函数-装饰器

python函数-装饰器 1.装饰器的原则--开放封闭原则 开放&#xff1a;对于添加新功能是开放的 封闭&#xff1a;对于修改原功能是封闭的 2.装饰器的作用 在不更改原函数调用方式的前提下对原函数添加新功能 3.装饰器的本质--闭包 4.装饰器 &#xff08;1&#xff09;简单的装饰器…

Math常用方法,String转float并且保留两位小数,除法

除法 public static double div(double v1, double v2, int scale) {if (scale < 0) {throw new IllegalArgumentException("The scale must be a positive integer or zero");}BigDecimal b1 new BigDecimal(Double.toString(v1));BigDecimal b2 new BigDecim…