当前位置: 首页 > news >正文

使用阿里OCR身份证识别

1、开通服务

免费试用

2、获取accesskay

 

AccessKeyId和AccessKeySecret 要同时复制保存下来 因为后面好像看不AccessKeySecret了

 3.Api 参考

https://help.aliyun.com/zh/ocr/developer-reference/api-ocr-api-2021-07-07-recognizeidcard?spm=a2c4g.11186623.0.0.7a9f4b1e5C0zS3

4、SDK示例

 

5、引入Maven依赖

         <dependency><groupId>com.aliyun</groupId><artifactId>ocr_api20210707</artifactId><version>3.1.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.79</version></dependency>

6、controller 

package org.example.controller;import cn.csliu.entity.IdCardRoot;
import com.aliyun.ocr_api20210707.Client;
import com.aliyun.ocr_api20210707.models.*;
import com.aliyun.tea.TeaException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.Common;
import com.aliyun.teautil.models.RuntimeOptions;
import lombok.SneakyThrows;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.alibaba.fastjson.JSON;
import java.io.InputStream;@RestController
public class IDCartController {public static Client createClient() throws Exception {Config config = new Config().setAccessKeyId("你的AccessKeyID").setAccessKeySecret("你的AccessKeySercet");// Endpoint 请参考 https://api.aliyun.com/product/ocr-api//设置阿里云 OCR 服务的 API 终端地址。config.endpoint = "ocr-api.cn-hangzhou.aliyuncs.com";return new Client(config);}@SneakyThrows@PostMapping("/ocr")public Object getOcrInfo(@RequestParam("file") MultipartFile file) throws Exception {Client client = IDCartController.createClient();//将fille文件转化为stream流InputStream bodyStream = file.getInputStream();RecognizeIdcardRequest recognizeIdcardRequest = new RecognizeIdcardRequest();recognizeIdcardRequest.setBody(bodyStream);RecognizeIdcardResponse response = null;String data = "";IdCardRoot idCardRoot = null;RuntimeOptions runtime = new RuntimeOptions();try {// 复制代码运行请自行打印 API 的返回值response = client.recognizeIdcardWithOptions(recognizeIdcardRequest, runtime);RecognizeIdcardResponseBody body = response.getBody();data= body.getData();idCardRoot = JSON.parseObject(data, IdCardRoot.class);} catch (TeaException error) {// 如有需要,请打印 errorCommon.assertAsString(error.message);} catch (Exception _error) {TeaException error = new TeaException(_error.getMessage(), _error);// 如有需要,请打印 errorCommon.assertAsString(error.message);}return idCardRoot;}
}

7、entity 实现类

package org.example.entity;import lombok.Data;@Data
public class IdCardBack {private IdCardDataBackData data;
}
package org.example.entity;import lombok.Data;/*** @author mucd*/
@Data
public class IdCardDataBackData {/*** 办理地址*/private String issueAuthority;/*** 生效-到期*/private String validPeriod;
}

 

package org.example.entity;import lombok.Data;/*** @author mucd*/
@Data
public class IdCardDataFaceData {private String name; //姓名private String sex; //性别private String birthDate; //出生日期private String ethnicity;//民族private String address; //地址private String idNumber;//身份证号码
}

 

package org.example.entity;import lombok.Data;@Data
public class IdCardDataType {private IdCardFace face;private IdCardBack back;
}

 

package org.example.entity;import lombok.Data;@Data
public class IdCardFace {private IdCardDataFaceData data;
}
package org.example.entity;import lombok.Data;@Data
public class IdCardRoot {private IdCardDataType data;
}

8、调试结果

相关文章:

使用阿里OCR身份证识别

1、开通服务 免费试用 2、获取accesskay AccessKeyId和AccessKeySecret 要同时复制保存下来 因为后面好像看不AccessKeySecret了 3.Api 参考 https://help.aliyun.com/zh/ocr/developer-reference/api-ocr-api-2021-07-07-recognizeidcard?spma2c4g.11186623.0.0.7a9f4b1e5C…...

8. 详细描述一条 SQL 语句在 MySQL 中的执行过程。

一条SQL语句在MySQL中的执行过程包括多个步骤&#xff0c;从接收到SQL命令到返回结果&#xff0c;这些步骤涉及SQL解析、优化、执行以及最终的结果返回。以下是详细描述一条SQL语句在MySQL中的执行过程。 1. 客户端发送SQL请求 客户端应用程序&#xff1a;首先&#xff0c;客户…...

C++--类的实例化

一、实例化的概念 用类类型在屋里内存中创建对象的过程&#xff0c;称为类实例化出对象 类是对对象进行一种抽象描述&#xff0c;是一个模型一样的东西&#xff0c;限定了类有哪些成员变量&#xff0c;这些成员变量只是声明&#xff0c;没有分配空间&#xff0c;用类实例化出…...

Vue vs React vs Angular 的对比和选择

前端框架对比与选择指南 在前端开发的世界里&#xff0c;框架可谓是开发者手中的利器。无论是新手还是老手&#xff0c;面对 Vue、React、Angular 等主流前端框架的选择时&#xff0c;都会有一瞬间的犹豫&#xff1a;“我到底该选哪个框架&#xff1f;”选择一个合适的前端框架…...

Yolov8-pose关键点检测:一种新的自适应算法轻量级通道分割和变换(ALSS)模块,解决红外检测场景存在严重遮挡和重叠目标时的局限性

💡💡💡本文解决什么问题:红外检测场景存在严重遮挡和重叠目标时的局限性的问题点。 💡💡💡提出了一种新的自适应算法轻量级通道分割和变换(ALSS)模块。该模块采用自适应信道分裂策略优化特征提取,并集成信道变换机制增强信道间的信息交换。这改善了模糊特征的提…...

无人机飞手培训机构六旋翼训练无人机技术详解

六旋翼无人机作为多旋翼无人机的一种&#xff0c;以其独特的稳定性、灵活性和载重能力&#xff0c;在航拍、农业、救援、物流等多个领域展现出广泛的应用前景。它采用六个旋翼产生升力&#xff0c;通过复杂的飞行控制系统实现悬停、前后左右飞行、翻滚等复杂动作&#xff0c;为…...

CX8903:电动车手机充电器降压芯片,搭配协议实现快充

CX8903&#xff1a;一款专用于电动车手机充电器的降压芯片&#xff0c;搭配协议实现快充。 在城市的车水马龙中&#xff0c;电动自行车如灵动的精灵&#xff0c;便捷着我们的出行生活。在骑行的路上&#xff0c;随时保持连接&#xff0c;电动自行车手机充电器让手机电量满满。…...

leaflet加载GeoServer的WMS地图服务.md

leaflet加载GeoServer的WMS地图服务&#xff0c;该示例涵盖了涵盖了 “WMS图层加载、WMS图层动态投影、图层index顺序调整、图层添加、高德地图、腾讯地图OpenStreet地图”&#xff0c;WMS图层加载看代码中标注的核心代码部分即可。 <!DOCTYPE html> <html xmlns&qu…...

Shire 智能体市场:IDE 一键安装多智能体,协同打造集体智慧 Copilot

太长不看版&#xff1a;在新版本&#xff08;0.8&#xff09;的 Shire 中&#xff0c;你可以通过 Shire 智能体市场&#xff0c;一键下载和安装多个智能体&#xff0c;并直接在你的当前项目中使用。与此同时&#xff0c;你还可以 将你的 Shire 代码段或者智能体上传到 Shire 智…...

机器学习笔记(一)初识机器学习

1.定义 机器学习是一门多学科交叉专业&#xff0c;涵盖概率论知识&#xff0c;统计学知识&#xff0c;近似理论知识和复杂算法知识&#xff0c;使用计算机作为工具并致力于真实实时的模拟人类学习方式&#xff0c;并将现有内容进行知识结构划分来有效提高学习效率。 机器学习有…...

linux如何查看当前的目录所在位置

在Linux系统中&#xff0c;查看当前目录所在位置的常用命令是 pwd&#xff0c;它代表 "print working directory"&#xff08;打印工作目录&#xff09;。当你在终端中输入 pwd 并按下回车键时&#xff0c;它会显示当前所在的完整路径。 打开终端&#xff0c;然后输…...

【JavaEE】线程创建和终止,Thread类方法,变量捕获(7000字长文)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯&#xff0c;你们的点赞收藏是我前进最大的动力&#xff01;&#xff01;7000字长文&#xff0c;希望本文内容能够帮助到你&#xff01; 目录 一&#xff1a;创建线程五种方式 方式一&#xff1a;继承Thread类&#xff0c;…...

[Python数据可视化] Plotly:交互式数据可视化的强大工具

引言&#xff1a; 在数据分析和可视化的世界中&#xff0c;Plotly 是一颗耀眼的明星。它是一个开源的交互式图表库&#xff0c;支持多种编程语言&#xff0c;包括 Python、R 和 JavaScript。Plotly 的强大之处在于它能够创建出既美观又具有高度交互性的图表&#xff0c;使得数据…...

Excel--DATEDIF函数的用法及参数含义

DATEDIF函数的用法为: DATEDIF(start_date,end_date,unit),start_date表示的是起始时间&#xff0c;end_date表示的是结束时间。unit表示的是返回的时间代码&#xff0c;是天、月、年等。如下: Datedif函数的参数含义unit参数返回值的意义"y"两个时间段之间的整年数…...

执行网络攻击模拟的 7 个步骤

在进攻和防守策略方面&#xff0c;我们可以从足球队和美式足球队身上学到很多东西。球员们会分析对方球队的策略&#xff0c;找出弱点&#xff0c;相应地调整进攻策略&#xff0c;最重要的是&#xff0c;练习、练习、再练习。作为最低要求&#xff0c;网络安全部门也应该这样做…...

技术成神之路:设计模式(十四)享元模式

介绍 享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构性设计模式&#xff0c;旨在通过共享对象来有效地支持大量细粒度的对象。 1.定义 享元模式通过将对象状态分为内部状态&#xff08;可以共享&#xff09;和外部状态&#xff08;不可共享&#xff09;&#xf…...

使用systemctl实现开机自启动jar包

目录 1. 创建服务文件2. 配置服务文件3. 重新加载 systemd 配置4. 启动服务5. 查看服务状态 1. 创建服务文件 创建服务文件&#xff1a; 在 /etc/systemd/system/ 目录下创建一个新的服务文件 myapp.service。 sudo vim /etc/systemd/system/myapp.service2. 配置服务文件 按i…...

2024.9.20营养小题【2】(动态分配二维数组)

这道题里边涉及到了动态分配二维数组的知识点&#xff0c;不刷这道题我也不知道这个知识点&#xff0c;算是一个比较进阶一点的知识点了。 参考&#xff1a;C语言程序设计_动态分配二维数组_哔哩哔哩_bilibili【C/C 数据结构 】二维数组结构解析 - 知乎 (zhihu.com)...

前端web端项目运行的时候没有ip访问地址

我们发现 没有netWork 的地址 导致 团队内其他同学无法打开我们的地址 进行访问 在page.json 中的运行 指令中 添加 --host 记得加上空格 这样我们就可以看到这个地址了 团队其他同学 就可以访问我们这个地址了...

微服务架构陷阱与挑战

微服务架构6大陷阱 现在微服务的基础设施还是越来越完善了&#xff0c;现在基础设施缺乏的问题逐渐被解决了。 拆分粒度太细&#xff0c;服务关系复杂 拆分降低了服务的内部复杂度&#xff0c;但是提升了系统的外部复杂度&#xff0c;服务越多&#xff0c;服务和服务之间的连接…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...

C++ 类基础:封装、继承、多态与多线程模板实现

前言 C 是一门强大的面向对象编程语言&#xff0c;而类&#xff08;Class&#xff09;作为其核心特性之一&#xff0c;是理解和使用 C 的关键。本文将深入探讨 C 类的基本特性&#xff0c;包括封装、继承和多态&#xff0c;同时讨论类中的权限控制&#xff0c;并展示如何使用类…...