一种身份证图像分割算法_第1页
一种身份证图像分割算法_第2页
一种身份证图像分割算法_第3页
一种身份证图像分割算法_第4页
一种身份证图像分割算法_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一种身份证图像分割算法

1自动识别的关键“自动身份验证系统”通过预处理、定位、分割和识别三个步骤实现信息的自动识别。针对身份证图像中存在强烈的底纹以及激光防伪标记造成的干扰,如何对身份证图像中待识别的信息进行准确有效的定位与分割就是自动识别的关键。本文提出并实现了利用平均字符中心距作为自动门限与Sobel算法相结合的方法进行字符的自动定位与精确分割。2图像是否具有白色深象素实验中我们使用的身份证图像是扫描仪扫描而得的256级灰度图像,如图1所示。针对身份证的位图格式,可以读取身份证中每个象素点的灰度信息,从图1中可以看出待识别的信息主要是由颜色较深的象素构成,并且位于图像的右侧,而左侧的头像和公章与信息识别并无关联,所以在预处理中,首先切除掉该区域,以减少处理的信息量,提高效率。通过对身份证特点的分析:身份证左侧的头像和右侧的待识别信息中都包含大量的颜色较深的象素,而这两部分之间的区域主要是颜色较浅的象素。因此,我们定义灰度值小于150的象素点为深色象素点,然后,对扫描后得到的身份证的BMP位图作垂直投影,如图2所示。统计每列上的深色象素点的总和,这样在头像区域与待识别信息区域之间会有明显的间隙存在,从而可以对待识别区域进行定位。3字符排列特点根据身份证图像中信息排列的特点,对预处理后的图像作水平方向的投影,在水平方向上累加各行上的深色象素点的个数。这样就得到一条表示各行所包含深色象素点个数的曲线。结合字符排列的特点和得到的投影曲线,显而易见,在有字符信息的行上有较多的深色象素点的累计,也就是说在包含有字符的行的位置上,曲线中将产生明显的峰值。而字符的行与行之间虽然有干扰点的存在,但是仍然有较明显的间隙,也就是说曲线中会在行与行之间产生明显的峰谷。因此,可以根据投影结果定位与分割出各个信息行。4局部阈值化方法因为图像中底纹和激光防伪标记在扫描后会形成强烈的干扰,而且这些干扰非常不均匀,以及各个信息行的灰度分布情况不同,亮度差别较大,所以在有效地定位与切分出各个信息行之后列分割之前,应该根据不同信息行的灰度分布情况采用不同的阈值,重新对原图像进行二值化处理,即局部阈值化在局部阈值化处理过程中,针对身份证图像的特征,我们提出并实现了一种阈值自动提取方法:首先,对目标信息行利用Sobel边缘提取4.1socare算子边缘检测算子检查每个象素的邻域并对灰度变化率进行量化,通常也包括方向的确定。有若干种方法可以使用,其中大多数是基于方向导数掩模求卷积的方法。Sobel算子是先做加权平均,然后再微分,图3所示的两个卷积核形成了Sobel边缘算子。图像中的每个点都用这两个和做卷积。一个核对通常的垂直边缘响应最大,而另一个对水平边缘响应最大。两个卷积的最大值作为该点的输出值。4.2信息行边缘点的个数设通过Sobel边缘提取后得到的信息行边缘上的点的灰度值保存在数组nBPixel[nBCnt]中。其中nBCnt是信息行边缘点的总数。计算信息行边缘点的灰度平均值:获取阈值:其中:nMis是一个经验值,实验中我们令其等于2。4.3个象素点所对应的基于图像的图像利用前面步骤所得到的阈值AutoT其中:g(x,y)表示各个象素点的值;若g(x,y)=0,表示该点为白色;若g(x,y)=1表示该点为黑色;f(x,y)为原始图像中象素点(x,y)所对应的灰度值;x和y分别表示该象素点所在的列和行。4.4图像的重复识别二值化后的数字图像可能包含孤立的黑白象素,平滑就是减少这些黑白噪声。基本的方法是,在有噪声的图像中,开一个一定大小的窗口对准第(i,j)个象素,根据窗口内值为1的个数是否超过某一个阈值,来确定平滑后的图像中第(i,j)个象素的值是1还是0,对于图像中的每个象素重复这一过程。在图4(a)、(b)中利用这种方法可以除去字符边缘上的凸起或凹口,遗憾的是,这样也将除去图4(c)中的中心元素,从而使识别更为困难。为此,在实际设计中我们采用Unger平滑方法。Unger平滑当g=0即g为白象素时,如果P当g=1即为黑象素时,如果P经过Unger平滑处理后的二值图像就可以进行进一步的列分割处理了。5定位和分割经过阈值处理后,得到了信息行的二值化图像,对该二值图像做垂直投影,根据投影得到的结果,通过粗分割与细分割两个步骤即可准确的定位5.1色象素点编码首先,对得到的信息行的二值图像作水平方向的投影,在水平方向上累加各行上的黑色象素点的个数。因为在有字符的区域会有较多的黑色象素点,所以通过检测投影结果即可得到字符的精确的上下边界。其次,再对该二值图像作垂直方向的投影,累加各列上的黑色象素点的个数。由于各个字符之间存在有明显的间隙,因此检测投影结果中的各个峰值,确定每个峰值所在的大致区域,从而完成粗分割。实验中,粗分割后得到的第i个峰值区域的起始位置与结束位置分别存放于数组FLeft[i]、FRight[i]中,i从0开始计。5.2字符断裂与字符粘连由于扫描原件自身的清晰度原因以及身份证图像中存在的强烈干扰,所以经过粗分割后可能会发生字符断裂与字符粘连现象,以身份证图像中的编号数字行为例,阈值化后的信息行图像及其垂直投影图如图5所示。也就是说,粗分割所得到的峰值区域并不能准确的代表每个字符所在的区域。因此,将进行以下三个步骤的处理以消除上述的两种现象。5.2.1平均字段根据身份证的特征,同一张身份证上同一信息行中字符字体和大小相同,因此它们拥有相同的字符中心距。(1)计算相邻高距离的开始和结束点之间的距离其中:FWidth[i]为数组,i从0开始计;FLeft[i]为数组,存放第i个峰值区域的起始位置。(2)像素点的范围根据身份证的特点,以编号数字行为例,数字字符有较为固定的大小,一般在17至20个像素点的范围之间。所以,对FWidth[i]进行判断,凡是符合上述范围的即为有效峰值区域,对所有有效峰值区域的FWidth[i]计算均值,即可得数字字符的平均字符中心距,记为AveWidth。5.2.2数字断裂检测算法得到平均字符中心距后,我们首先处理字符断裂现象,如图5(a)所示,倒数第二个数字“0”中间发生断裂。显而易见,凡是FWidth[i]小于AveWidth的峰值区域,必然发生了数字断裂现象。实验中,我们采用如下的算法来纠正数字断裂现象,并将处理后得到的各个峰值区域的起始位置与结束位置分别存放于数组SLeft[k]、SRight[k]中。从i=0,j=1,k=0开始:(1)读取FLeft[i]和FLeft[i+j],计算FLeft[i+j]-FLeft[i]的差值,如果该差值小于AveWidth(即发生了断裂现象),j加1,重新计算FLeft[i+j]-FLeft[i]的差值,并重新作判断,直到该差值大于或等于AveWidth,停止检测,执行下一步。(2)记录新的峰值区域的起始位置与结束位置:(3)重复本算法步骤(1)。经过上述处理后,所有的字符断裂都被纠正,但同时可能会引入新的字符粘连现象,因此我们还要进行消除粘连的处理。5.2.3抓重复本算法检测粘连在完成断裂处理后,接着需要对于字符粘连进行处理,即图5(b)所示,第二个数字“4”与第三个数字“0”之间发生粘连。对于大于AveWidth的SWidth[i],我们认为发生了粘连现象,于是利用以下算法进行纠正处理,并将处理后得到的各个峰值区域的起始位置与结束位置分别存放于数组LLefi[k]、LRight[k]中。从i=0,k=0开始:(1)读取SLeft[i]和SLeft[i+1],计算SLeft[i+1]-SLeft[i]的差值,如果该差值小于或等于AveWidth,则:LLeft[k]=SLeft[i]LRight[k]=SRight[i]重复上述过程直到该差值大于AveWidth(即发生了粘连现象)停止检测,执行下一步。(2)切分发生粘连的字符区域:LRight[k]=SLeft[i]+(SRight[i]-SLeft[i])/2-1LLeft[k+1]=SRight[i]-(SRight[i]-SLeft[i])/2+1k=k+2其中,根据身份证中编号数字的排列特征,在分割后两部分之间留有2个像素宽的间隙。(3)重复本算法步骤(1)。经过以上处理,我们根据LLeft[k]和LRight[k]就可以准确地进行定位与分割。6结果实验中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论