JAVA识别身份证号码,H5识别身份证号码,tesseract-ocr识别(二)
2016-03-15 11:55
363 查看
背景介绍
上一篇博文介绍了如何使用JAVA识别身份证号码,假设在截取了身份证号码信息的情况下,这一篇博文主要讨论一下思路吧,技术方面都是大家会的。思路分析
H5拍照上传 —> 服务端截取身份证号码 —–> 识别号码 —–>返回信息这几步,关键点在于 截取身份证号码这个步骤。我们期望的是正好截取到身份证号码的位置。
这位大哥,罪过罪过,暂且借你图片一用,如侵犯了权益,请联系我,立马删除。
最优方案
我觉得最好的办法是,直接在照相的界面出现一个红色的框框,让用户自己去对准身份证号码,可惜H5调用摄像头只能使用系统的界面,这个功能必须APP来做。没办法最优方案只好抛弃。
歪招
由于H5的限制,我想了一个歪招,用户上传完照片之后,看见图片才给他显示一个红框,如果识别错误,用户再次照相的时候自己去校准。
这个体验肯定非常不好,目前未使用APP的情况下,我们暂且这样吧。
处理图片
在截取身份证位置的时候,每个摄像头像素不一样怎么办呢?当然可以使用百分比截取。
而我使用的是对图片进行缩放,据我观察,大概缩放到 900x540,当然这会有一点变形。
具体值大家自行把握。
然后截取身份证号码的位置。具体值大家可以自行把握。
ImgCutUtil.zoomImage(src, src, 900, 540); ImgCutUtil.cutImage(src, temp + filname, 290, 400, 600, 140); return TesseractUtil.recognizeText(new File(temp + filname));
找到前端,把界面做出来,你看见的红色框框是一个div,是前端用CSS画出来的,当然你也可以在后台处理图片的时候,把你截取的那一部分加上红色框。展示界面如下。
测试结果
使用Iphone5s、Iphone6、Iphone6s测试,识别效果良好错误率很少。使用魅族测试,识别率低。照片模糊偏黄(是不是不对图片进行缩放会好些?大家可以测试一下)
测试结果证明一个道理,这个东西识别率要提高,必须要结合APP做!!!
后记
依照同样的思路,安装上中文语言包,然后对tesseract进行训练,是不是可以把所有的信息都是别呢?如果你做出来了请告诉我!!嘿嘿嘿。相关文章推荐
- java 利用Jframe实现查找鼠标点击的位置坐标
- JAVA集合类
- 对java中面向对象思想的理解
- 理解Java垃圾回收机制
- MyEclipse使用经验总结
- JavaMail--群发HTML邮件
- java发送邮件示例讲解
- Java 基础拾遗
- (转)Java字符串
- MyEclipse开发Hibernate
- 【JAVA】40、构造方法重载
- 文章标题
- java字符串-改变序列
- java代码实现快速排序
- Eclipse中看java源代码
- java中replace 和replaceAll使用遇到的问题:
- Spring系列
- 关于Struts2异常或错误不输出到控制台原因
- springmvc学习笔记(22)-springmvc开发小结
- springMVC 头像裁剪上传并等比压