orc识别较慢_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, "");

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值