Bootstrap

OpenCV身份证离线识别技术实战(一)

OpenCV身份证离线识别技术的主要技术就是通过OpenCV找到身份证号码区域,然后通过OCR进行数字识别该区域的截图即可得到身份证号码。本地ORC使用tess-two来完成,Tesseract是C++实现的OCR引擎,在Android中使用不是很方便,需要封装JavaAPI才能在Android平台中进行调用,然而tess-two已经帮我们做好了这些事情,通过集成tess-two就可以很方便的完成文字识别。

总体思路

图像的预处理

1、无损压缩

首先要处理的问题就是图片的大小不一样,因为每台设备的的像素或者说每个图片的大小本身都不一样,处理过程也会有所差异,所以首先解决的问题就是大小统一,先通过无损压缩把图片处理为大小一致的图像。根据经验值(或者说这是处理证件类的通用手法),先把图像处理为640×400的大小。

2、灰度化

现在大部分的彩色图像都是采用RGB颜色模式,处理图像的时候,要分别对RGB三种分量进行处理,实际上RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配。图像灰度化处理可以作为图像处理的预处理步骤,为之后的图像分割、图像识别和图像分析等上层操作做准备。

其实可以仔细想想,如果是处理一张RGB图像的话,一个像素点需要同时处理3个值,灰度化之后只需要处理一个值。如果是对比的话,一个RGB像素点就有256×256×256种可能,但是如果是对比灰度图的像素点,则只有256种可能,65536倍的速

;