创建百度账号以及识别应用的步骤请借鉴:https://blog.csdn.net/qq_43037478/article/details/90232084
一、引入jar包
<!--百度ocr依赖-->
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.4.1</version>
</dependency>
二、创建一个ocr客户端
AipOcr client = new AipOcr("21991***","Lvm6itXL5AMVBajPRP***","Kh80i1Ds0ZBaIDGFbwjv6IEhfN2***");
AipOcr参数说明(记住:这里要换成自己的应用信息):
appid:21991***
apiKey:Lvm6itXL5AMVBajPRP***
secretKey:Kh80i1Ds0ZBaIDGFbwjv6****Bs
三、调用客户端里封装的识别身份证接口(idcard)
// url为传入的一个网络图片地址
//new一个URL对象
URL realUrl= new URL(url);
//打开链接
HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();
//设置请求方式为"GET"
conn.setRequestMethod("GET");
//超时响应时间为5秒
conn.setConnectTimeout(5 * 1000);
//通过输入流获取图片数据
InputStream imageStream = conn.getInputStream();
byte[] file = IOUtils.toByteArray(imageStream);
// 传入可选参数调用接口
HashMap<String, String> options = new HashMap<String, String>();
options.put("detect_direction", "true");
options.put("detect_risk", "false");
// 参数为本地图片二进制数组,
org.json.JSONObject ress = client.bankcard(file, options);
参数说明:
image:图片流
options:传入可选参数调用集合
options参数说明:
参数 | 是否必选 | 类型 | 可选值范围 | 说明 |
---|---|---|---|---|
detect_direction | 否 | string | - | 此参数新版本无需传,支持自动检测图像旋转角度 |
返回说明
返回参数
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
log_id | uint64 | 是 | 请求标识码,随机数,唯一。 |
direction | int32 | 否 | 图像方向,当 detect_direction = true 时,返回该参数。 - -1:未定义; - 0:正向; - 1: 逆时针90度; - 2:逆时针180度; - 3:逆时针270度 |
result | object | 是 | 返回结果 |
+ bank_card_number | string | 是 | 银行卡卡号 |
+ valid_date | string | 是 | 有效期 |
+ bank_card_type | uint32 | 是 | 银行卡类型,0:不能识别; 1: 借记卡; 2: 贷记卡(原信用卡大部分为贷记卡); 3: 准贷记卡; 4: 预付费卡; |
+ bank_name | string | 是 | 银行名,不能识别时为空 |
返回示例
{
"log_id": 144718895115129615,
"result": {
"bank_card_number": "3568 8900 8000 0005",
"valid_date": "07/21",
"bank_card_type": 2,
"bank_name": "招商银行"
}
}