资源简介

matlab下对车牌图像进行二值化,灰度化,滤波,分割。可运行测试,供学习

资源截图

代码片段和文件信息

I=imread(‘1.jpg‘);

figure(1)imshow(I);title(‘LC原图‘);
I1=rgb2gray(I);   %将真彩色图像转换为灰度图像
figure(2)subplot(121)imshow(I1);title(‘LC灰度图‘);
figure(2)subplot(122)imhist(I1);title(‘LC灰度图直方图‘);
I2=edge(I1‘robert‘0.08‘both‘);  %高斯滤波器方差为0.08
figure(3)imshow(I2);title(‘LCrobert算子边缘检测‘)
se=[1;1;1];
I3=imerode(I2se);  %图像的腐蚀
figure(4)imshow(I3);title(‘LC腐蚀后图像‘);
se=strel(‘rectangle‘[4040]);  %构造结构元素,以长方形构造一个se
I4=imclose(I3se); %对图像实现闭运算,闭运算也能平滑图像的轮廓,但与开运算相反,它一般融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。
figure(5)imshow(I4);title(‘LC平滑图像的轮廓‘);
I5=bwareaopen(I42000); %从二进制图像中移除所有少于p像素的连接的组件(对象),产生另一个二进制图像
figure(6)imshow(I5);title(‘LC从对象中移除小对象‘);
[yxz]=size(I5);
myI=double(I5);
tic
 Blue_y=zeros(y1);
 for i=1:y
    for j=1:x
             if(myI(ij1)==1) 
  
                Blue_y(i1)= Blue_y(i1)+1;%蓝色像素点统计 
            end  
     end       
 end
 [temp MaxY]=max(Blue_y);%Y方向车牌区域确定
 PY1=MaxY;
 while ((Blue_y(PY11)>=1)&&(PY1>1))
        PY1=PY1-1;
 end    
 PY2=MaxY;
 while ((Blue_y(PY21)>=1)&&(PY2        PY2=PY2+1;
 end
 IY=I(PY1:PY2::);
 %%%%%% X方向 %%%%%%%%%
 Blue_x=zeros(1x);%进一步确定x方向的车牌区域
 for j=1:x
     for i=PY1:PY2
            if(myI(ij1)==1)
                Blue_x(1j)= Blue_x(1j)+1;               
            end  
     end       
 end
  
 PX1=1;
 while ((Blue_x(1PX1)<3)&&(PX1       PX1=PX1+1;
 end    
 PX2=x;
 while ((Blue_x(1PX2)<3)&&(PX2>PX1))
        PX2=PX2-1;
 end
 PX1=PX1+30;%对车牌区域的校正
 PX2=PX2-30;
 PY1=PY1+30;
 PY2=PY2-30;
  dw=I(PY1:PY2-8PX1:PX2:);
 t=toc; 
figure(7)subplot(121)imshow(IY)title(‘LC行方向合理区域‘);
figure(7)subplot(122)imshow(dw)title(‘LC定位剪切后的彩色车牌图像‘)
imwrite(dw‘dw.jpg‘);
[filenamefilepath]=uigetfile(‘dw.jpg‘‘输入一个定位裁剪后的车牌图像‘);
jpg=strcat(filepathfilename);
a=imread(‘dw.jpg‘);
b=rgb2gray(a);
imwrite(b‘1.车牌灰度图像.jpg‘);
figure(8);subplot(321)imshow(b)title(‘1.LC车牌灰度图像‘)
g_max=double(max(max(b)));
g_min=double(min(min(b)));
T=round(g_max-(g_max-g_min)/2); % T为二值化的阈值
[mn]=size(b);
d=(double(b)>=T);  % d:二值图像
imwrite(d‘2.车牌二值图像.jpg‘);
figure(8);subplot(322)imshow(d)title(‘2.LC车牌二值图像‘)
figure(8)subplot(323)imshow(d)title(‘3.LC均值滤波前‘)
% 滤波
h=fspecial(‘average‘3);
d=im2bw(round(filter2(hd)));
imwrite(d‘4.均值滤波后.jpg‘);
figure(8)subplot(324)imshow(d)title(‘4.LC均值滤波后‘)
% 某些图像进行操作
% 膨胀或腐蚀
% se=strel(‘square‘3);  % 使用一个3X3的正方形结果元素对象对创建的图像进行膨胀
% ‘line‘/‘diamond‘/‘ball‘...
se=eye(2); % eye(n) returns the n-by-n identity matrix 单位矩阵
[mn]=size(d);
if bwarea(d)/m/n>=0.365
    d=imerode(dse);
elseif bwarea(d)/m/n<=0.235
    d=imdilate(dse);
end
imwrite(d‘LC5.膨胀或腐蚀处理后.jpg‘);
figure(8)subplot(325)imshow(d)title(‘5.LC膨胀或腐蚀处理后‘)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     318095  2014-05-03 18:53  imageseg_车牌\1.jpg

     文件       6458  2014-11-24 16:23  imageseg_车牌\1.车牌灰度图像.jpg

     文件      12824  2014-11-24 16:23  imageseg_车牌\2.车牌二值图像.jpg

     文件      12810  2014-11-24 16:23  imageseg_车牌\4.均值滤波后.jpg

     文件       8546  2014-11-24 16:23  imageseg_车牌\dw.jpg

     文件      27036  2014-05-08 16:04  imageseg_车牌\figue3xiu.fig

     文件       3094  2014-05-08 16:17  imageseg_车牌\img.m

     文件      12810  2014-11-24 16:23  imageseg_车牌\LC5.膨胀或腐蚀处理后.jpg

     文件     263224  2008-11-30 22:30  imageseg_车牌\Lena.bmp

     文件      27046  2014-05-08 16:20  imageseg_车牌\untitled.fig

     文件       3072  2014-05-08 15:56  imageseg_车牌\Untitled.m

     文件      19968  2014-11-24 16:55  imageseg_车牌\新建 Microsoft Word 文档.doc

     目录          0  2014-11-24 16:55  imageseg_车牌

----------- ---------  ---------- -----  ----

               714983                    13


评论

共有 条评论