⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zhenggai.txt

📁 整改后的车牌显示系统,课程设计时所用,实用.适合多种情况
💻 TXT
字号:
I=imread('304df6d5.jpg');
Y=rgb2gray(I);
figure(1);imshow(Y); title('灰度图象');
 a=0.4;
f=double(Y);
d0=4;
b=fft2(f);
b=fftshift(b);
[X,Y]=size(b);
m=fix(X/2);
n=fix(Y/2);
for i=1:X
      for j=1:Y
          d=sqrt((i-m)^2+(j-n)^2);
      if ( d<=d0)
              h=a;
          else
              h=1+a;

          end
result(i,j)=h*b(i,j);
end
end
result=ifftshift(result);
J2=ifft2(result);
g=uint8(real(J2));
figure;
imshow(g);title('图象细节信息');%减去原图的背影只保留高频信息
g=double(g);
X=min(min(g)+max(max(max(g)-min(min(g))))*0.6);%取阈值
[m n]=size(g);
 for i=1:m
     for j=1:n
         if g(i,j)<X
            g(i,j)=0;
     else
         g(i,j)=255;
     end
    end
end  
figure;imshow(g,[]);title('图象二值化');%完成图像二值化
[Gx,Gy]=gradient(g);       % 计算梯度
G=sqrt(Gx.*Gx);   % 注意是矩阵点乘
BW1=G;
figure;
imshow(BW1); title('图象梯度锐化');% 第一种图像增强
b=medfilt2(BW1,[4,2]); 
BW=im2bw(b,0.7);
figure;imshow(BW,[]); 
 se=strel('rectangle',[3,3]);
  I4 = imdilate(BW,se);%膨胀
%    se=strel('rectangle',[3,3]);
%          I4=imclose(BW,se);
       figure;imshow(I4);    
%            imshow(I4);
 BW2=bwareaopen(I4,50);%滤波
figure;imshow(BW2);
[y,x]=size(BW2);
 my1=double(BW2);
%%%Y方向%%%
 y1=zeros(y,1);
         for i=1:y
             for j=1:x
                 if(my1(i,j)==1) % 白色RGB的灰度范围
                     y1(i,1)= y1(i,1)+1;      % 白色象素点统计  
                 end
             end
         end
         [temp MaxY]=max(y1);         % Y方向车牌区域确定
         PY1=MaxY;
         while ((y1(PY1,1)>=5)&&(PY1>1))
             PY1=PY1-1;
         end
         PY2=MaxY;
         while ((y1(PY2,1)>=5)&&(PY2<y))
             PY2=PY2+1;
         end
         IY=g(PY1:PY2,:,:);
         %%%%%%%% X 方向 %%%%%%%%%% 
         x1=zeros(1,x);              % 进一步确定X方向的车牌区域
         for j=1:x
             for i=PY1:PY2
                 if(my1(i,j)==1)
                     x1(1,j)= x1(1,j)+1;  
                 end
             end
         end  
         PX1=1;
         while ((x1(1,PX1)<3)&&(PX1<x))
             PX1=PX1+1;
         end    
         PX2=x;
         while ((x1(1,PX2)<3)&&(PX2>PX1))
             PX2=PX2-1;
         end
         Plate=g(PY1:PY2,PX1:PX2,:); 

 %%%%
 figure ,plot(y1);grid
figure,plot(x1);grid
figure,imshow(IY);
figure,imshow(Plate);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -