ORC识别身份证遇到的问题--已完成

身份证图片拍照存在亮度不均的情况,导致过滤出现部分区域无法识别。

初步解决办法:

1.切割图片,按照区域坐标切割出名字,身份证号两块大致区域。再将身份证号切割成多个小图片(因为号码较长,光线不均匀情况很明显)    前端拍照时通过摄像头提示框解决切割图片

2.色彩过滤,忽略RGB值超过300的像素,将其调整为-1变为白色。(300这个阈值需要根据实际图片进行调整,如果光线过强,则数值要调大一些)   通过OpenCV进行二值化、去噪点。(如果是进行验证码识别,还需要RGB分层等算法进行过滤杂质,比较复杂后续有时间会研究)

3.图片拼接,将多段身份证号码的小图片重新拼接然后进行OCR识别。  经过上面两步之后已经解决问题

继续。

切割图片直接用java自带的包根据坐标来解决,拍照倾斜角造成了图片曝光不均的问题严重影响解析,找了下资料准备使用opencv提供的局部自适应阈值图像二值化来试试。web下使用opencv出现Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java249 in java.library.path,而且服务器是在linux上,先去服务器安装opencv。

2017.9.1日继续

身份证识别功能基本完成。

使用opencv对图片进行二值化(可以去除光线造成的曝光不均问题)、去噪点(忽略小区域像素,这点非常重要。我使用了点手段,通过缩放和扩大来,试了下缩2扩2连续3-4次效果比较好)

tess4j进行文本识别。直接上maven

正则过滤保留数字、中文、字母。

.String reg = "[^a-zA-Z0-9\\u4e00-\\u9fa5]";

result = result.replaceAll(reg, "");

身份证号验证规则验证号码正确性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 身份证识别,又称OCR技术。OCR技术是光学字符识别的缩写,是通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及...
    SunshineAutumn阅读 6,485评论 12 16
  • 转自:http://www.jianshu.com/p/ac4c4536ca3e# 一、前言  身份证识别,又称O...
    ZhangCc_阅读 1,522评论 1 11
  • 最近不少简友说git上下载下来的代码报各种问题,因为包含的库都比较大,所以大家在pod的时候耐心等待,另外我已经将...
    peaktan阅读 38,390评论 158 327
  • 这段时间项目的需求,需要在注册的时候进行身份证识别。就简单的搞了一下。 身份证识别 项目的需求是通过摄像头的采集获...
    请输入账号名阅读 7,987评论 12 24
  • 声明 本文暂时禁止任何形式的转载, 以下示例图片为了不侵犯个人行驶证隐私,全部做打码处理。 感想 做了近一个月的图...
    热血沸腾阅读 9,860评论 3 14