2).精确定位:
车牌颜色主要分为:蓝底白字、黄底黑字、黑底白字,白底黑字四种。相同号码不同颜色组合的车牌不是同一个车牌,所以颜色信息在车牌定位的过程中相当重要。本文在精确定位时结合车牌的长宽信息、颜色信息,根据车牌颜色(蓝、白、黄、黑4种)像素占候选车牌区域所有像素的比例来确定哪个是车牌部分,由此得到准确的车牌区域。
具体思想如下:对粗定位中提取的区域进行研究,如果此区域蓝、黑、黄色中哪种颜色较多,则认为蓝底色牌照、黑底色牌照、黄底色牌照,剩余的车牌为白底色军车和武警车牌照等。每个颜色的RGB有一定的范围比例,如蓝色的RGB各值中蓝色分量最大,并且蓝色红色分量的比值大于门限Tb;黑色的RGB各值相差不大,它们与其它颜色的RGB值相比是很小的值,且小于门限Tbl;黄色的RGB各分量依次减小,而且蓝色分量远小于其它两色。设图像中像素的红绿蓝三色分量分别记为r、g、b,下面的pixel代表像素的类型,是蓝色的记为Blue,黑色的记为Black,黄色的为Yellow,具体判断如下:
如果车牌颜色信息满足蓝底牌照、黑底牌照条件或者Sillll<nlean,则认为粗定位得到的车牌为蓝底牌照或者黑底色牌照:否则视为其它牌照type=RESTPLATE。统计行方向在此颜色范围内的像素点数量,即该行对蓝色或黑色的投影值,把此区域的所有像素行的投影值都统计出来,得到此区域对蓝色或黑色的水平投影。水平投影操作是把二文图像的像素分布特征简。
化为X轴和Y轴的两个一文函数。车牌边缘为白色或者被边框包围,在图像对蓝色或黑色的水平投影上表现为波谷。而要设定合理的闷值,也就是取两个波谷的区域为边界,确定车牌在行方向的区域。在分割出的行区域内,用相同的方法统计列方向的底色像素点数量,取图像对蓝色或黑色的垂直投影的两个波谷为左右边界,最终确定完整的车牌区域。通过定位修正能更准确找到车牌图像的上下边界。
从原始图像可以看到,车体和车牌颜色对比明显,车体主要为黑色,而车牌为蓝色背景,白色字体。车体和车牌颜色的明显对比为算法提供了基础。此算法缺陷在于:车牌颜色必须不同于图像整体背景色,否则无法提取出车牌区域。
(4).基于改进sobel算子边缘检测法[1]
传统Sobel算子只有水平和垂直两个方向模板;其中水平模板对水平边缘的响应最大,垂直模板对垂直边缘响应最大。模板的方向表示灰度由低到高或由高到低的变化方向,而不是图像的实际边缘方向。通过对车牌字符的垂直方向和斜线方向进行划分,本文采用751方向模板,算法实现的基本思想:构造751方向模板,对图像进行逐点计算,取最大值作为该点的新灰度值,该最大值对应模板的方向为该像素点的边缘方向。车牌图像提取特征后,采用迭代求图像最佳分割阈值的算法进行二值化;大多数车牌图像上噪声点较多,经过二值化后的图像如果直接进行水平投影定位,可能出现伪特征信息,所以应先进行去除噪声。本文采用模板大小为l×3的腐蚀运算,去除一些较小噪声点,保留图像车牌部位的主要信息。得到腐蚀后的车牌图像后,对图像的像素沿水平方向累加产生一个投影图,在车牌对应的水平位置会出现一段峰值。一般情通过以下三点来判断峰值对应的位置是否为车牌区域:
1).波峰和波谷之间具有一定的落差,当一个局部最大值和它邻近的局部最小值的差大于某一阈值时,该局部最小值为波谷,反之为干扰值。 Matlab车牌定位算法的设计+文献综述(5):http://www.751com.cn/yanjiu/lunwen_10150.html