.车牌预处理
车牌预处理过程的好坏直接影响到车牌图像进行后期处理过程,比如车牌字符分割等。车牌预处理也是尽可能的消除噪声,减少后期处理带来的不必要的麻烦。
输入的车牌是24bit的bmp真彩色图像,车牌照有黄底黑字,蓝底白字等颜色,为了将这些车牌图像一并处理,就要先将车牌进行灰度化处理,然后进行二值化(黑白)处理。
图4-1 原始图像
将采集的车牌图像进行预处理,为了方便起见,这里采用的是bmp格式的图片,我将采集的车牌图像进行了裁剪处理,裁剪后的图片如下:
由于中国大部分的车牌是第一个是汉字,第二个到第七个是字母或数字,这就可以将车牌图像识别过程分成两部分处理,第一部分是识别汉字的过程,第二部分是识别字母和数字的过程,由于汉字笔画较多,同字母或数字的处理过程有所不同。所以我这里就先处理字母或数字的过程。
除汉字外,在第一个字母和第二个数字的中间有个一点,所以在字符分割的时候要考虑去掉中间的点。车牌图像总体来说比较清晰,大型民用车,牌照为黄底黑字,小型民用车,牌照为蓝底白字,由于字符与背景颜色对比比较明显,所以将车牌分割开来比较容易。由于有些车牌的上面和下面也有螺丝之类的东西将车牌固定,所以在将车牌分割的时候,通过水平扫描跳跃点的方法,可以去除掉,以便最后将车牌进行分割,去除这些干扰。
在rgb模型中,如果r=g=b时,则彩色表示一种灰度颜色,其中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)为转换后的灰度图像在(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 < height; i++)
{
for(j= 0;j < width*3; j+=3)
{
ired = (unsigned char*)lpdibbits + linebytes* i + j + 2;
igreen= (unsigned char*)lpdibbits + linebytes * i + j + 1;
iblue = (unsigned char*)lpdibbits + linebytes* i + j ;
lpdest[i*width+ j/3]= (unsigned char)((*ired)*0.299 + (*igreen)*0.588 + (*iblue)*0.114);//加权平均值计算处理
}
}
如何离线运行pulp代码呢?
聊一聊编码器的“性价比”怎么比
卡萨帝自由嵌入式婴爱冰箱上市 成为国美渠道销售TOP1型号
firefly双屏互动简介
麦科特MD-2018型DVD机开关电源分析
视觉系统识别车牌的具体方法
电池SOC 估算方法中卡尔曼滤波器法
高效LED驱动模式实现理想LED照明设备
Multisim仿真—电容测量电路
Midex正在运用区块链技术将传统银行产品与现代数字技术相结合
诺基亚8配置先知晓,一个骁龙835就值得你再等一个多月
Ryzen二代处理器14nm工艺曝光 想等7nm Ryzen?那得等到2019年!
盘点2023年畅销智能手表,腕上智能大比拼!
传输系统中的时钟同步技术
鸿蒙系统 VS 安卓系统
强人工智能需要具备哪些特点
关于锐解析度MTF定义及测试的方案设计
比较器的原理及应用
桥片和GPU,已然不是龙芯的短板!
中芯国际发布2020年Q3财报:营业收入208亿