车牌预处理
车牌的预处理过程直接影响到车牌图像的后处理过程,如车牌字符分割。车牌预处理也是为了尽可能的消除噪声,减少后期处理带来的不必要的麻烦。
输入的车牌是24位BMP真彩色图像。车牌有黄底黑字,蓝底白字和其他颜色。为了一起处理这些车牌图像,车牌必须先灰化,然后二值化(黑白)。
图4-1原始图像
对采集的车牌图像进行预处理。为了方便起见,这里使用BMP格式的图像。我对采集到的车牌图像进行了剪切,剪切后的图像如下:
由于中国大部分车牌一开始是汉字,第二到第七位是字母或数字,所以车牌图像识别过程可以分为两部分。第一部分是识别汉字的过程,第二部分是识别字母和数字的过程。因为汉字笔画多,字母或数字的处理过程也不一样。所以我这里我先处理字母或数字的过程。
除了汉字,第一个字母和第二个数字中间都有一个点,要考虑去掉字符分割中间的点。一般来说,车牌图像清晰。大型民用汽车的车牌是黄底黑字,小型民用汽车的车牌是蓝底白字。由于字符和背景颜色的明显对比,很容易分割出车牌。有些车牌是用螺丝固定在上下的,所以在分割车牌的时候,可以通过水平扫描跳转点的方式去除,这样最后就可以分割出车牌,去除这些干扰。
在RGB模型中,如果R=G=B,color表示一种灰色,其中R=G=B的值称为灰度值。所以灰度图像的每个像素只需要一个字节来存储灰度值(也叫强度值和亮度值),灰度范围是0-255。一般来说,有四种方法对彩色图像进行灰度化。
1.组件方法。也就是说,提取每个分量的颜色值,即RGB3。即一幅彩色图像中三个分量的亮度作为三幅灰度图像的灰度值,可以根据应用需要选择一幅灰度图像。F1 (i,j)=R (I,J) F2 (I,J)=G (I,J) F3 (I,J)=B (I,J)其中fk(i,j)(k=1,2,3)是转换后的灰度图像in (I,J)
2.最大值法。在彩色图像的三个分量中选择颜色(RGB)的最大值作为灰度图像的灰度值。即f(i,j)=max(R(i,j),G(i,j),B(i,j))。
3.平均法。平均彩色图像中三个分量的亮度,得到一幅灰度图像f(i,j)=(R(i,j) G(i,j) B(i,j))/3。
4.加权平均法。根据重要性等指标,对三个分量进行加权,用不同的权重进行平均。因为人眼对绿色最敏感,对蓝色最不敏感,所以根据下面的公式对RGB三个分量进行加权平均,可以得到合理的灰度图像。f(i,j)=0.30R(i,j) 0.59G(i,j) 0.11B(i,j))。
在上述四个处理过程中,在车牌预处理过程中,我选择了加权平均法。效果如下:
图4-2原始图像
图4-3灰度图像
如上图所示,图中的原始图像是经过加权平均处理后的灰度图像。
关键代码如下:
for(I=0;I身高;我)
{
for(j=0;j宽度* 3;j=3)
{
ired=(unsigned char *)lpDibBits line bytes * I j 2;
I green=(unsigned char *)lpDibBits line bytes * I j 1;
iblue=(unsigned char *)lpDibBits line bytes * I j;
lpdest[i*Width j/3]=(无符号字符)((* ired)* 0.299(* I green)* 0.588(* iblue)* 0.114);//加权平均计算处理
}
}
标签:图像车牌灰度