基于opencv库和tess-two在android平台上实现身份证号的识别!

基于opencv库和tess-two,Zxing在android平台上实现身份证号的识别!

前言 : 最近因为公司项目的需要, 要做身份证号,银行卡号的识别, 集成zxing库,从网上搜了下资料有了大概的思路, 但是opencv for android还是走了很多坑,接下来本文章就如何实现身份证号的识别做下分析

实现原理分析 :通过zxing库捕捉相机获得图像,或者从相册里获取图片,再对图像进行处理. 对图像处理 : 对源图像进行像素放大缩小处理>预处理(图像灰度化,低通滤波处理,边缘检测,二值化,中值平滑处理,闭运算)>刷选身份证号的矩形,得到有效行>对有效行进行灰度化,二值化>然后就进行识别.

实现过程:
1. 环境的配置
a. opencv3.2的依赖: 去官网下载opencv for android的sdk,解压得到这个目录

在android studio中选择improt module加载进来 将依赖的opencv的build.gradle里的版本要求和主工程的build.gradle保持一致如图

最后将sdk目录中的native的libs里的文件复制到主工程的main里的jniLibs目录下,jniLibs目录需自己创建.这样opencv库就装载成功了!

b. tesseract库的使用,本文章不对tesseract如何编译做详细介绍,可以使用tess-two,有编译好的,解压的后,把Jar文件添加到项目,把libs目录的文件复制到jniLibs目录下这样tess-two就集成完了.

c. 语言包的放置,可以从tesseract-ocr的官网下载中文的或者英文的,但是针对只是身份证号的识别,打算自己训练,官方下载的语言包文件都过大,本篇文章不对如何训练做详细介绍.

d. zxing库的引用(本文不做介绍)

2 代码实现
如图
如上图主界面为三个入口,根据的scan_type的类型来调用zxing库的扫描类型

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值