Java身份证号码识别系统(开源项目)

点击上方蓝色字体,选择“设为星标”

回复”资源“获取整理的海量电子书

项目介绍

本项目是通过学习https://gitee.com/nbsl/idCardCv 后整合tess4j,不需要经过训练直接使用的,当然,你也可以进行训练后进行使用。该项目修改原有的需要安装opencv的过程,全部使用javaccp技术重构,通过javaccp引入需要的c++库进行开发。

不需要安装opencv 新增的了前端控制识别区域的功能,新增了后端识别后验证 ,页面样式主要适应paid,重新修改了后面的识别过程,用户opencv进行图片优化和区域 选择,使用tess4j进行数字和x的识别 配合样式中的区域在后台裁剪相关区域图片 /idCardCv/src/main/resources/static/js/plugins/cropper/cropper.css

  

遇到问题

1、java.lang.UnsatisfiedLinkError: C:\Users\Administrator.javacpp\cache\opencv-3.4.3-1.4.3-windows-x86_64.jar\org\bytedeco\javacpp\windows-x86_64\jniopencv_core.dll: Can't find dependent libraries 我的问题是因为没有c++运行环境,我在img/vc_redist.x64.exe中添加了64位的运行环境

身份证号码识别

请求地址 http://localhost:8080/idCard/index 它基于openCV这个开源库。这意味着你可以获取全部源代码,并且移植到opencv支持的所有平台。它是基于java开发。它的识别率较高。图片清晰情况下,号码检测与识别准确率在90%以上。

Required Software

本版本在以下平台测试通过:

  • windows7 64bit

  • jdk1.8.0_45

  • junit 4

  • opencv4.3

  • javaccp1.5.3

  • tess4j4.5.1

  • tesseract4.0.0

项目更新

1、先前使用base64进行图片的上传比较缓慢,使用webuploader插件进行分片上传,网速慢的时候可以提升速度,尤其是paid浏览器使用。原页面改为idcard_bak.html。

2、原项目中有测试图片保存路径,统一更新到配置文档中。

3、将opencv3.4.3升级到4.3

项目地址

https://gitee.com/endlesshh/idCardCv

推荐阅读

GitHub 热榜:标星 1.6w,黑客必看的黑魔法开发指南!

深入了解 Json Web Token 之概念篇

Spring 中的 bean 是线程安全的吗?


最后,推荐给大家一个有趣有料的公众号:写代码的渣渣鹏,7年老程序员教你写bug,回复 面试或资源 送一你整套开发笔记 有惊喜哦

Java身份证识别可以通过使用OCR技术来实现。OCR(Optical Character Recognition,光学字符识别)是一种将图像中的文字转换为可编辑和可搜索的文本的技术。在Java中,你可以使用一些开源的OCR库来实现身份证识别功能,例如Tesseract OCR和Asprise OCR。 以下是使用Tesseract OCR库进行身份证识别的示例代码: ```java import net.sourceforge.tess4j.Tesseract; import net.sourceforge.tess4j.TesseractException; public class IDCardRecognition { public static void main(String[] args) { // 创建Tesseract对象 Tesseract tesseract = new Tesseract(); try { // 设置OCR语言为中文 tesseract.setLanguage("chi_sim"); // 读取身份证照片并进行识别 String result = tesseract.doOCR(new File("身份证照片.jpg")); // 提取人名和地址信息 String name = extractName(result); String address = extractAddress(result); // 截取身份证头像并进行Base64编码 String base64Image = extractHeadshotBase64(new File("身份证照片.jpg")); // 生成XML并将人名、地址和头像编码放入XML中 String xml = generateXML(name, address, base64Image); System.out.println(xml); } catch (TesseractException e) { e.printStackTrace(); } } // 提取人名信息的方法 private static String extractName(String result) { // 实现提取人名的逻辑 // ... return "张三"; } // 提取地址信息的方法 private static String extractAddress(String result) { // 实现提取地址的逻辑 // ... return "北京市朝阳区"; } // 截取身份证头像并进行Base64编码的方法 private static String extractHeadshotBase64(File imageFile) { // 实现截取头像并进行Base64编码的逻辑 // ... return "头像的Base64编码"; } // 生成XML的方法 private static String generateXML(String name, String address, String base64Image) { // 实现生成XML的逻辑 // ... return "生成的XML内容"; } } ``` 请注意,以上代码只是一个示例,具体的实现细节需要根据你使用的OCR库和具体的需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值