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

📄 matlab.txt

📁 MATLAB汽车车牌定位程序 有详细的注解 大家可以参考下
💻 TXT
字号:
clc,clear,close all      	%清空Matlab工作平台所有变量(准备工作)
b=imread('car3.jpg');           %读取图像“车3”的信息
tic                             %tic toc函数可以获得程序执行时间,此处用于获得整个程序的运行时间。
figure(1),imshow(b);            %需要多个窗口同时打开的时候使用figure语句;
			        %如果窗口不存在,则产生新图形窗口并设置为当前图形窗口,该窗口名为“Figure No.n”,而不关闭其他窗口。
				%imshow可用于显示“车3”的图像

[size1,size2,size3]=size(b)     %得到“车”的矩阵各维的大小
c=zeros(size1,size2,size3);     %生成与“车”矩阵各维大小相同的全0矩阵c
     
       L=b(:,:,1)<80 & b(:,:,2)<80 & b(:,:,3)>100; %suit for 'car2.jpg';'car3.jpg'
      % L=b(:,:,1)<160 & b(:,:,2)<160 & b(:,:,3)>190; %  suit for 'car1.jpg'
         c(L)=255;
         L1=~L; 


         c(L1)=0;
c1=uint8(c);			%类型无符号整型(uint8),即图像矩阵中每个数据占用1个字节。存储灰度图像只需要一个数据矩阵。

                                %数据类型是uint8,[0,255]阵中每个数据占用1个字节。


figure(2);imshow(c1)		%打开窗口2,显示图像c1

maxx=0;maxy=0;minx=size2;miny=size1;	%给maxx\maxy\minx\miny分别初始化
for i=1:size1
    for j=1:size2
        if c(i,j,1)==255
         if i<miny
             miny=i;
         end
         if i>maxy
             maxy=i;
         end
         if j<minx
             minx=j;
         end
         if j>maxx
             maxx=j;
         end
       end 
   end
end

minx
miny
maxx
maxy

%c1=uint8(c);
%figure(2);imshow(c1)
c2=imcrop(b,[minx,miny,maxx-minx,maxy-miny]);
figure(3);imshow(c2);

[m1,m2]=max(max(c));
[w1,w2]=max(c(:,m2(:,:,1),:));
angle1=atan(abs(w2(:,:,1)-miny)/(maxx-minx));
angle1=angle1/2*180/pi;
p1=imrotate(c2,-angle1+30);
p2=imrotate(p1,-30);
figure(4);imshow(p2)
%=====
[size1,size2,size3]=size(p2)
cc=zeros(size1,size2,size3);
      % L=(b(:,:,1)+10<b(:,:,3))  & (b(:,:,2)+10< b(:,:,3)); %suit for 'car2.jpg';'car3.jpg'
       LL=p2(:,:,1)<80 & p2(:,:,2)<80 & p2(:,:,3)>100; %suit for 'car2.jpg';'car3.jpg'
      %  L=b(:,:,1)<160 & b(:,:,2)<160 & b(:,:,3)>190; %  suit for 'car1.jpg'
         cc(LL)=255;
         LL1=~LL;
         cc(LL1)=0;
cc1=uint8(cc);
figure(5);imshow(cc1)

maxx=0;maxy=0;minx=size2;miny=size1;
for i=1:size1
    for j=1:size2
        if cc(i,j,1)==255
         if i<miny
             miny=i;
         end
         if i>maxy
             maxy=i;
         end
         if j<minx
             minx=j;
         end
         if j>maxx
             maxx=j;
         end
       end 
   end
end

minx
miny
maxx
maxy


cc2=imcrop(p2,[minx+3,miny+10,maxx-minx-6,maxy-miny-20]);
figure(6);imshow(cc2);
figure(7);im2bw(cc2);
toc

⌨️ 快捷键说明

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