膨胀可以使图像的边界朝外扩大,从而达到填补图像中的缝隙或者空洞的目的。膨胀的功能主要是将目标区域的周围一些背景像素点去除,并且将其并入目标区域中,可以填补图像在分割之后所形成的空洞。
(2-10)
2。3。2 腐蚀
腐蚀一般是删除对象边界某些元素,在腐蚀操作中,输出像素值是图像中相应的像素领域内所有像素中的最小值。腐蚀可以通过去除图像中的毛刺、凸起等使得图像向内收缩。并且可以将两个有细小的联通的区域分开[12]。
(2-11)
2。3。3 开运算
当运用同一个结构元素先对图像进行腐蚀运算,接着再对图像进行膨胀运算,即为开运算。开运算一般用来使得图像的边缘更为平滑,去除一些突刺以及一些孤立的像素点。
(2-12)
2。3。4 闭运算
当运用同一个结构元素先对图像进行膨胀运算,接着再对图像进行闭合运算,即为闭运算。闭运算也可以用来使得图像的边缘更为平滑,并且可以填充一些图像中的小孔。
(2-13)
对应Matlab程序:
se=[1;1;1]; %构造线性结构元素
I3=imerode(I2,se); %对I2进行腐蚀操作
figure(3),文献综述
subplot(1,3,1),imshow(I3),title('腐蚀后边缘图像');
se=strel('rectangle',[25,25]); %构造25*25的矩形结构元素
I4=imclose(I3,se); %用25*25的矩形结构元素进行闭运算
subplot(1,3,2),imshow(I4),title('填充后图像');
I5=bwareaopen(I4,2000); %去除I4中聚团灰度值小2000的部分
subplot(1,3,3),imshow(I5),title('形态滤波后图像');
图2。4 形态学处理
2。4 车牌定位
在进行字符分割和字符识别之前首先要正确地分割出车牌区域,对此提出的方法主要有Hough变换以检测直线来提取车牌区域、使用灰度分割及区域生长进行区域分割[13],或者使用纹理特征分析技术等。当车牌图像的车牌区域变形或者被污染时,使用Hough变换法的失效可能性会急剧增加。当车牌图像中有很多和车牌区域灰度差不多的区域时,灰度分割法也没有很好的效果。本文使用的方法是数学形态学来定位车牌。
图像在经过灰度化处理、边缘检测后车牌区域已经比较明显,再经过数学形态学分析,去除了噪声,保留了图像的原有信息,并且使得图像边缘更为平滑。车牌定位结果如图2。6所示。
对应Matlab程序:
[y,x,z]=size(I5); %y是I5矩阵的行数,x是列数,z是维数
I6=double(I5); %将I5转成双精度型
%%%%%对Y方向进行分析%%%%%
Y1=zeros(y,1); %创造一个y行1列的0矩阵
for i=1:y
for j=1:x
if(I6(i,j,1)==1) %判断(i,j,1)是否为目标像素点
Y1(i,1)= Y1(i,1)+1; %计算目标像素点个数
end
end
end
[temp MaxY]=max(Y1); %创建一个临时变量MaxY
figure(4);
subplot(1,2,1),plot(0:y-1,Y1),title('行方向像素点灰度值累计和'),xlabel('行值'),ylabel('像素');
PY1=MaxY; %以下求出Y方向上满足目标区域的最小坐标值
while ((Y1(PY1,1)>=50)&&(PY1>1))
PY1=PY1-1;
end
PY2=MaxY; %以下求出Y方向上满足目标区域的最大坐标值
while ((Y1(PY2,1)>=50)&&(PY2<y))