车牌识别系统毕业设计内容摘要:

定位的工 作就是在形态学开运算处理完毕的图像中寻找封闭的黑色区。 由于汽车牌照一般安装在汽车车体下部,所以寻找过程在图像中由下而上进行。 这一过程分为 3 步,即横坐标第一次定位,纵坐标粗定位和横坐标第二次定位。 假设汽车图像由 M 行 N 列点阵集组成, p(i,j)为点阵集中第 i 行 j 列点值。 则横坐标( x1,x2)第一次定位的过程如下所示: 步骤 1:设 j=0,计算第 j 列黑色点个数,是否超过阈值 1T。 是则 x1=j,转至步骤 2;不是则 j=j+1,若 j=N1,则未找到汽车牌照,转至步骤 3,否则重复 本步骤。 步骤 2: j=j+1,计算第 j 列黑色点个数,是否超过阈值 1T。 是则 x2=j,若 j=N1,转至步骤 3,否则重复本步骤。 步骤 3:退出程序。 纵坐标( y1,y2)定位的过程如下所示: 步骤 1:设 i=M1,计算第 i行 x1x2 间连续黑色点个数,并判断是否超过阈值 2T。 是则 y1=i,转至步骤 2;不是则 i=i1。 若 i=0,则未找到 汽车牌照,转至步骤 3,否则重复本步骤。 步骤 2: i=i1,计算第 i 行 x1x2 间连续黑色点 个数,并判断是否超过阈值 2T。 是则y2=i,若 i=0,则转至步骤 3,否则重复本步骤。 步骤 3:退出程序。 横坐标( x1,x2)第二次定位的过程如下所示: 步骤 1:设 j=x1,计算第 j 列 y1y2 间连续黑色点个数,并判断是否超过阈值 3T。 是武汉理工大学毕业设计(论文) 14 则 x1=j,转至步骤 2;不是则 j=j+1。 若 j=x2,则未找到汽车牌照,转至步骤 3,否则重复本步骤。 步骤 2: j=j+1,计算第 j 列 y1y2 间连续黑色点个数,并判断是否超过阈值 3T。 是则x2=j,若 j=x2,则转至步骤 3,否则重复本步骤。 步骤 3:退出程序。 上述 1T , 2T , 3T 可根据汽车牌照的大小预设,但 1T 3T。 最后,得到汽车牌照区域 4 个顶 点坐标( x1,y1),( x1,y2),( x2,y1) 和 ( x2,y2)。 武汉理工大学毕业设计(论文) 15 3 汽车牌照区域精定位 汽车牌照区域粗定位完毕后,该汽车牌照区域是否为真,还需要进一步甄别。 有时,可能会找到多个疑似汽车牌照区域,这就需要进行排查。 由此,粗定位后还需要进一步精定位。 精定位过程由两部分组成,即形状识别和纹理识别。 汽车牌照区形状识别 一般,汽车牌照区域应在汽车图像的最下方,所以甄别顺序是由下而上。 若一旦甄别出来某一个疑似汽车牌照区域为真,则可以直接退出汽车牌照定位环节,转入汽车牌照分割及字符识别环节,以提高系统整体识别速度。 按照我国交通管理部门的规定,汽车牌照宽度为 440mm, 高度为 140mm,宽高比为。 汽车牌照中字符宽度为 45mm,高度为 90mm,宽高比为。 那么,疑似汽车牌照区的形状满足式 (4): 3 12 xx / 12 yy (4) 则 就可以认为通过形状识别的要求。 否则疑似汽车牌照区域为假。 另外,考虑汽车图像中 的汽车牌照可能由于摄取角度不同而发生形变,故 式 (4)可修正为如下:  12 xx / 12 yy 4 (5) 形状识别环节通过后,即可进行纹理识别环节。 汽车牌照区纹理识别 汽车牌照区域纹理识别主要依据是汽车牌照区内存在 7 个类字符区,从而在纹理上存在高频的灰度变化特征。 为了提高识别速度,应选用黑白二值图,因为其比 256 阶灰度图或彩色图进行字符纹理识别更合适,为此,本系统选用图 7 所示的图像进行识别。 算法如下: (a) 设     6/,8/ 1212 yytxxt yx  ; (b) 在 ytyy  1 行,从 1x + xt 到 2x xt 搜索黑白值交替的次数,记为 0n ; (c) 1yy ,从 1x + xt 到 2x xt 搜索黑白值交替的次 数,记为 1n ; (d)重复步骤 (c),得到 in , (i=2,3,… , ytyy 212  ); (e)若 20 in 50, i=0,1,… , ytyy 212  ,则认为通过纹理识别要求,疑似汽车牌照区域为真。 否则,疑似汽车牌照区域为假。 武汉理工大学毕业设计(论文) 16 汽车牌照定位结果图如图 9 所示: 图 10 汽车牌照定位 汽车牌照倾斜校正 由于汽车图像的 摄制角度问题可能导致摄取的汽车牌照发生倾斜,这对后续的汽车牌照字符分割和字符识别都将造成困难,因此需要对汽车图像进行校正,这里可通过图像旋转进行校正。 常用的汽车牌照旋转算法是先通过图像预处理 寻找汽车牌照边框。 一旦找到汽车牌照边框,就可以计算出汽车牌照倾斜的角度,并对图像进行旋转。 常用的算法是 Hough 变换算法。 ( 1) Hough 变换 Hough 变换是利用图像全局特性而将边缘像素连接起来组成区域封闭边界的一种方法。 Hough 变换是将平面坐标用极坐标来表示,如直线方程 bmxy  表示为: sinco s yxr  ,使得 x y 平面的任意一直线的 Hough 变换是 r  空间量化成许多小方格,根据每一个 ( x ,y )点代入  的量化值,算出各个 r 值(经量化),落在某个小方格内,此小方格计数加 1,统计所有点后,则有大的计数值 的小方格对应于共线点,其 (r , )可作为直线拟合参数。 Hough 变换算法虽然是寻找图像中直线的经典算法,但其计算精度并不是很高。 另外,汽车牌照图像由于天气、背景、光线、拍摄角度以及本身亏损等原因,汽车牌照边框经常不是很清晰和连续。 如果仅靠寻找汽车牌照边框所形成的直线来判定汽车牌照倾斜角度的话,并不是很可靠。 为此,还应寻找精 度更高的识别算法。 ( 2)形态学变换 考虑到汽车牌照内字符本身也含有汽车牌照倾斜角度的信息,而其,汽车牌照定位算法中也已找到并复现了汽车牌照字符图像。 由此,本文采用一种形态学的算法来确定汽车牌照倾斜角度。 图 9 所示即为在汽车牌照定位过程中找到并复现的汽车牌照字符图像。 可见,汽车牌照内字符和汽车牌照发生了相一致的倾斜。 在此基础上,进行形态学开运算(Open):   SSXSX  (6) 武汉理工大学毕业设计(论文) 17 式中,目标位 X ,结构元素为 S。 这里结构元素为一个 33 的矩形。 先用 S 对 X 进行腐蚀处理  SX ,黑色点将腐蚀周围的白色点,并和附近的黑色点融合成黑色区。 当腐蚀的次数足够大时,所有的黑色点可以最终增长融合为一个密封的黑色区。 本系统中腐蚀的次数取为 10 次。 腐蚀后,由于黑色区外沿也将随之扩大,为了保证黑色区域不超过汽车牌照区域,再进行 10 次腐蚀的逆运算,即膨胀  SX ,把最终的黑色区缩为实际汽车牌照区大小。 ( 3)倾斜角度计算 在汽车牌照倾斜角度中,由于高低角很小,故可以忽略不计 ,但水平角需要准确得到。 由于汽车牌照内字符都是标准字符,因而,在形态学变换完毕后,形成的矩形区比较规整。 为此,本文采用如下算法: (a) 对汽车牌照矩形区在水平方向上进行选择,只取全部的( 1/6,5/6)一段进行分析,以避免受到矩形区两侧形变的干扰。 (b) 在纵向进行统计学均值处理,即求得各列的黑色像素点的统计均值。 (c) 将各列的均值连成一条直线。 (d) 计算该条直线的斜率,即可得到矩形区的水 平倾斜角。 通过计算,得到汽车牌照倾斜角度为 度。 将图 1 经过几何变换中的旋转后,得到的汽车牌照图像如图 10 所示。 图 11 汽车牌照倾斜校正 对校正后的彩色汽车牌照进行灰度化和有色点对搜索,其结果图如图 11 和图 12 所示。 武汉理工大学毕业设计(论文) 18 图 12 校正后汽车牌照灰度化图 图 13 校正后汽车牌照有色点对搜索 对校正后的汽车牌照灰度化图像(图 11)和校正后的汽车牌照有色点对搜索图像(图12)进行 汽车牌照再定位,定位算法如前面粗定位一样。 然后根据汽车牌照定位结果进行汽车牌照提取。 汽车牌照再定位图像和车牌提取图像如图 13 和 14 所示。 图 14 汽车牌照再定位图像 图 15 汽车牌照提取图像 武汉理工大学毕业设计(论文) 19 4 汽车牌照字符分割 汽车牌照分割的目的是把汽车牌照内的 7 个字符彼此分割开来,以用于字符识别。 分割算法比较简单,即以识别汽车牌照内字符间存在的距离为依据进行分割。 在汽车牌照旋转前,这个距离不是垂直可查的,因而难以准确确定。 但是,旋转校正后,字符间的距离就很容易确定了。 由于字符分割及后面的字符识别都是基于二值图像的。 因此,在分割前,还需对汽车牌照区进行图像阈值处理。 汽车牌照二值化 对图 14 所示汽车牌照提取图像进行二值化处理 ,以突出汽车牌照字符。 汽车牌照字符区域中,灰度分布呈明显的双峰形态,而且双峰所对应的字符前景和背景具有明显的灰度差别, 因此,这里的二值化阈值采用整个汽车牌照区域的灰度均值。 汽车牌照二值化图像如图 15 所示。 图 16 汽车牌照二值化图像 去除边框 为防止汽车牌照的边框对字符提取构成干扰,这里通过横向和纵向投影的方式去除边框。 去除边框的代码如下: int pixels=0,curpixels=0,yy1,yy2,xx1,xx2,flag=0。 yy1=0。 yy2=。 for(j=0。 j。 j++){ if(*(dibNewm_pImgData+j)==255) curpixels++。 } pixels=curpixels。 for(i=1。 i。 i++){ curpixels=0。 for(j=0。 j。 j++){ if(*(dibNewm_pImgData+i*lineByte+j)==255) curpixels++。 } if(flag==0){ 武汉理工大学毕业设计(论文) 20 if(curpixelspixels) pixels=curpixels。 if(pixelscurpixels*pixels){ flag=1。 pixels=curpixels。 } } else{ if(curpixelspixels) pixels=curpixels。 if(curpixelspixels*curpixels){ yy1=i。 flag=0。 } } } flag=0。 for(j=0。 j。 j++){ if(*(dibNewm_pImgData+()*lineByte+j)==255) curpixels++。 } pixels=curpixels。 for(i=。 i。 i){ curpixels=0。 for(j=0。 j。 j++){ if(*(dibNewm_pImgData+i*lineByte+j)==255) curpixels++。 } if(flag==0){ if(curpixelspixels) pixels=curpixels。 if(pixelscurpixels*pixels){ flag=1。 pixels=curpixels。 } } else{ if(curpixelspixels) pixels=curpixels。 if(curpixelspixels*curpixels){ yy2=i。 flag=0。 武汉理工大学毕业设计(论文) 21 } } } flag=0。 for(i=yy1。 iyy2。 i++){ if(*(dibNewm_pImgData+i*lineByte)==255) curpixels++。 } pixels=curpixels。 for(j=1。 j。 j++){ curpixels=0。 for(i=yy1。 iyy2。 i++){ if(*(dibNewm_pImgData+i*lineByte+j)==255) curpixels++。 } if(flag==0){ if(curpixelspixels) pixels=curpixels。 if(pixelscurpixels*pixels){ flag=1。 pixels=curpixels。 } } else{ if(curpixelspixels) pixels=curpixels。 if(curpixelspixels*curpixels){。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。