最近信息公司有个项目,需要收集商户的身份信息。当时考虑把功能做在微信里面代替做在app里面,app需要开发二个平台之外还要考虑各种手机版本的问题,甚是繁琐。但是由于购买的身份证读卡器,只有安卓和IOS版本的SDK,没有可以支持微信的SDK,所以只能把开发外包出去做在APP上面。
这二天看了一个阿凡达数据API接口,功能还算强大,完全能满足直接拍照身份证获取身份证中的信息,并且还有接口可以做身份证校验处理。唯一遗憾的是接口基本上都是收费的,如果不是商用的话,费用太贵。
实现方式比较简单,首先把图片转换成base64编码字符串。
/** * 将图片转换为BASE64加密字符串. * * @param imagePath * 图片路径. * @param format * 图片格式. * @return */ public static String convertImageToByte(String imagePath, String format) { BASE64Encoder encoder = new BASE64Encoder(); File file = new File(imagePath); BufferedImage bi = null; ByteArrayOutputStream baos = null; String result = null; try { bi = ImageIO.read(file); baos = new ByteArrayOutputStream(); ImageIO.write(bi, format == null ? "jpg" : format, baos); byte[] bytes = baos.toByteArray(); result = encoder.encode(bytes).trim(); System.out.println("将图片转换为BASE64加密字符串成功!"+result); } catch (IOException e) { System.out.println("将图片转换为 BASE64加密字符串失败: " + e); } finally { try { if (baos != null) { baos.close(); baos = null; } } catch (Exception e) { System.out.println("关闭文件流发生异常: " + e); } } return result; }
把对应的URL和编码传入,就可以返回对应身份证的JSON字符串。
private static void httpUrlConnection(String pathUrl, String base64Str) { try { String param= "key=6766ee9f3dfd4297868bcf024ea68c49&pic_ext=jpg&bas64String="+ base64Str ; //建立连接 URL url=new URL(pathUrl); HttpURLConnection httpConn=(HttpURLConnection)url.openConnection(); //设置参数 httpConn.setDoOutput(true); //需要输出 httpConn.setDoInput(true); //需要输入 httpConn.setUseCaches(false); //不允许缓存 httpConn.setRequestMethod("POST"); //设置POST方式连接 //设置请求属性 httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接 httpConn.setRequestProperty("Charset", "UTF-8"); //连接,也可以不用明文connect,使用下面的httpConn.getOutputStream()会自动connect httpConn.connect(); //建立输入流,向指向的URL传入参数 DataOutputStream dos=new DataOutputStream(httpConn.getOutputStream()); dos.writeBytes(param); dos.flush(); dos.close(); //获得响应状态 int resultCode=httpConn.getResponseCode(); if(HttpURLConnection.HTTP_OK==resultCode){ StringBuffer sb=new StringBuffer(); String readLine=new String(); BufferedReader responseReader=new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"UTF-8")); while((readLine=responseReader.readLine())!=null){ sb.append(readLine).append("\n"); } responseReader.close(); System.out.println(sb.toString()); } } catch (Exception ex) { ex.printStackTrace(); } }
对应JSON的格式:
{"result":{"nation":"汉","number":"330782198410185315","name":"xx阳","address":"浙江省XXXXXXX溪村4组","sex":"男"},"error_code":0,"reason":"Succes"}
相关推荐
身份证图片信息识别源码工具 WInForm语言开发 根据提供的身份证图片识别身份证的姓名、年龄、出生年月日、身份证号码、民族、身份证地址等重要信息 本案例使用Windows自有接口进行图片信息的识别,识别后解析信息 ...
百度OCR服务提供了强大的文字识别功能,能够准确地从身份证图片中提取出姓名、性别、出生日期、地址等关键信息。 要开始这个项目,首先需要在百度AI开放平台注册账号并创建应用,获取API密钥和应用秘钥。这两个关键...
本篇将深入探讨“百度OCR-身份证图片识别源码”这一技术主题,它主要涉及百度OCR技术以及如何利用其进行身份证信息的自动识别。身份证识别在现代社会有着广泛的应用,例如线上实名认证、金融业务办理等,极大地提高...
这个压缩包文件可能包含了一个C#项目,该项目实现了利用百度的OCR(Optical Character Recognition,光学字符识别)服务来识别身份证图片中的文字信息。 首先,C#是一种由微软开发的面向对象的编程语言,广泛用于...
《电信设备-身份证信息获取系统》是一套专为电信行业设计的系统,旨在高效、安全地获取和管理用户的身份证信息。此系统的核心功能是通过自动化流程处理身份证信息的验证、存储和检索,以满足电信运营商在用户开户、...
1. **身份证信息识别**:身份证信息识别是指通过技术手段自动提取身份证上的文字和图片信息,包括姓名、性别、出生日期、地址、身份证号码等关键字段。这项技术通常基于光学字符识别(OCR)原理,能够快速准确地识别...
身份证图片识别技术是一种基于计算机视觉和深度学习的图像处理技术,它主要用于自动读取和验证身份证上的信息,如姓名、性别、出生日期、住址以及身份证号码等。在现代数字化社会中,这种技术广泛应用于各种场景,如...
在IT行业中,身份证图片文字转换是一项常见的需求,特别是在自动化数据录入、信息验证或者数据分析的场景下。本示例主要展示了如何使用.NET框架下的C#语言,结合Tesseract-OCR(Optical Character Recognition,光学...
标题中的“百度OCR-身份证图片识别源码-更新”指的是使用百度提供的光学字符识别(OCR)技术来识别身份证上的文字信息,并且这个源码已经进行了更新。百度OCR是百度AI开放平台提供的一项服务,它能够自动识别图像中...
然后,我们需要读取身份证图片,并将其加载到Tesseract引擎中。可以使用`System.Drawing`库处理图像: ```csharp using System.Drawing; using SixLabors.ImageSharp; using SixLabors.ImageSharp.Processing; // ...
4. **身份证识别**:身份证识别是OCR技术的一个具体应用场景,用于自动读取身份证上的文字信息。在本项目中,用户上传身份证照片后,通过百度OCR服务,系统能解析出身份证的各个字段,为后续的数据处理提供便利。 5...
标题"Delphi10读取二代证基本信息和照片"揭示了这个任务的核心内容,即通过编程手段获取身份证上的关键数据,包括姓名和性别,并且读取身份证上的个人照片。 Delphi10.2.2是一个流行的开发工具,它提供了丰富的组件...
华视CVR-100U身份证阅读器是一款专门用于读取第二代身份证信息的硬件设备,它通过USB接口与计算机连接,能够快速、准确地提取身份证上的文字、照片等数据。这款阅读器广泛应用于银行、酒店、公安、教育等众多领域,...
【华视CVR-100U身份证阅读器C#读取demo】是一个基于C#编程语言的示例项目,用于演示如何从华视CVR-100U身份证阅读器中读取身份证信息和头像图片。这个阅读器是一款广泛应用在公共服务、企业办公等领域的设备,能够...
调用这些API,开发者只需将身份证图片上传,即可获取解析后的身份证信息。 2. API接口使用:在iOS中,可以使用HTTP或HTTPS请求来调用API,常用的是Alamofire或URLSession。首先,你需要在项目中配置好网络请求库,...
1. 图像采集:应用会通过相机或者选择相册图片来获取身份证的图像。 2. 图像预处理:对采集到的图像进行一系列预处理操作,如灰度化、二值化、去噪、校正倾斜等,以提高后续识别的准确性。 3. 文本区域检测:通过...
本文将深入探讨如何在Android平台上利用开源库`tess-two`实现离线身份证图片的文字识别,特别是包含中文训练库的情况。 `tess-two`是Google的Tesseract OCR引擎的一个Android移植版,它允许开发者在Android设备上...
3. 字符分割:在身份证图片中,识别出的字符可能是连在一起的,因此需要进行字符分割,确保每个数字或字母都能被独立识别。 4. 字体匹配与识别:由于二代身份证字体有特定规范,识别库需要对这种特殊字体有良好的...
通过图像处理和机器学习算法,OCR可以将身份证图片中的文字信息转换成可编辑的文本格式。 - Tesseract OCR:这是一款开源的OCR引擎,常用于Android项目中进行文字识别。本项目可能使用了Tesseract进行身份证号码的...
1. 特征增强:针对身份证图片的特点,调整模型的训练数据集,增强模型对身份证文字的识别能力。 2. 模型微调:根据实际应用环境,对预训练模型进行微调,以适应特定场景。 3. 算法优化:采用更高效的后处理算法,...