Java提取身份证照片数据,so easy

自己是做Java开发,但是本人以前接触并学习很多图像的知识,所以对图像很敏感。下面以百度的一个接口,实现身份证识别案例(一颗算法开发的心在不断的跳动,哈哈!!!)

身份证识别在很多场景都有应用,如:门禁卡,使用身份证扫描识别;App注册扫描认证等。现在我将我的方法分享给大家,希望对大家有所帮助,谢谢!

1、需要百度开发者AppID、SecretKey 、API Key。

先注册,然后进入
https://console.bce.baidu.com/ai/?fromai=1#/ai/ocr/overview/index,这个网址,选择文字识别,创建应用,获取AppID、SecretKey 、API Key。

2、创建一个maven项目,在pom中添加相应的依赖jar

<!-- 百度文字识别SDK -->
    <dependency>
        <groupId>com.baidu.aip</groupId>
        <artifactId>java-sdk</artifactId>
        <version>4.6.1</version>
    </dependency>

3、创建两个配置工具类

public class BaiduConfig {
    public static final String APP_ID = "***";//自己的
    public static final String API_KEY = "****";//自己的
    public static final String SECRET_KEY = "***";//自己的

}
public class Utils {
        
    /**
        将图像转为二进制数组
   * @param path
   * @return
   */
  public static byte[] readImageFile(String path){
        byte[] data = null;
        FileImageInputStream input = null;
        try {
          input = new FileImageInputStream(new File(path));
          ByteArrayOutputStream output = new ByteArrayOutputStream();
          byte[] buf = new byte[1024];
          int numBytesRead = 0;
          while ((numBytesRead = input.read(buf)) != -1) {
          output.write(buf, 0, numBytesRead);
          }
          data = output.toByteArray();
          output.close();
          input.close();
        }
        catch (FileNotFoundException ex1) {
          ex1.printStackTrace();
        }
        catch (IOException ex1) {
          ex1.printStackTrace();
        }
        return data;
      }

4、执行类IDCardRecogizeController

package com.toutiao.yangwj.controller;

import com.baidu.aip.ocr.AipOcr;
import com.toutiao.yangwj.config.BaiduConfig;
import com.toutiao.yangwj.utils.ImageUtil;
import org.json.JSONObject;

import java.util.HashMap;

/**
 * @author yangwj
 * @date 2020/5/23 14:49
 */
public class IDCardRecogizeController {

    public static void main(String[] args) {
        IDCardRecogize();
    }

    public static void IDCardRecogize() {
        AipOcr client = new AipOcr(BaiduConfig.APP_ID, BaiduConfig.API_KEY, BaiduConfig.SECRET_KEY);
        // 传入可选参数调用接口
        HashMap<String, String> options = new HashMap<String, String>();
        options.put("detect_direction", "true");
        options.put("detect_risk", "false");
        //背面照
        //String idCardSide = "back";
        //前面照
        String idCardSide = "front";

        // 参数为本地图片路径
        //String image = "D:\\back.jpg";
        String image = "D:\\front.png";
        JSONObject res = client.idcard(image, idCardSide, options);
        System.out.println(res.toString(2));

        // 参数为本地图片二进制数组
        byte[] file = ImageUtil.readImageFile(image);
        res = client.idcard(file, idCardSide, options);
        System.out.println(res.toString(2));

    }

}

5、测试效果

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
Java Easy Excel 是一款基于 Java 的操作 Excel 的开源工具库,可以方便地进行 Excel 文件的读写操作。在使用 Java Easy Excel 进行自定义报表字段时,我们可以按照以下步骤进行操作。 首先,我们需要创建一个 Java 类,用于定义报表字段的数据结构。可以使用注解来标识每个字段,例如使用 @ExcelProperty 注解来定义报表中的每个列,使用 @ExcelIgnore 注解来忽略某些字段。 接下来,我们可以通过 Java Easy Excel 提供的 API 来读取 Excel 文件,并将数据转换为我们定义的报表字段对象。可以使用 ExcelReader 类的 read 方法来读取 Excel 文件中的数据,并通过指定报表字段对象的类名来指定读取的目标对象。 读取完成后,我们可以对获取到的报表字段对象进行处理,例如可以进行一些数据的过滤、排序、统计等操作。可以使用 Java 的集合框架对数据进行操作,根据需要进行加工处理。 最后,我们可以通过 Java Easy Excel 提供的 API 将处理后的数据写入到一个新的 Excel 文件中。可以使用 ExcelWriter 类来创建一个新的 Excel 文件,并将报表字段对象中的数据写入到文件中的每一行。 使用 Java Easy Excel 进行自定义报表字段的操作相对简单,只需要明确定义报表字段的数据结构,并根据需要读取、处理和写入 Excel 文件即可。这样,我们就可以方便地通过 Java 进行自定义报表字段的操作了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿杰笔记

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值