資源簡介
車牌識別(帶有設(shè)計(jì)報(bào)告,實(shí)例圖片,Matlab源程序)
a.牌照定位,定位圖片中的牌照位置;
b.牌照字符分割,把牌照中的字符分割出來;
c.牌照字符識別,把分割好的字符進(jìn)行識別,最終組成牌照號碼。

代碼片段和文件信息
clear?;
close?all;
%Step1?獲取圖像???裝入待處理彩色圖像并顯示原始圖像
Scolor?=?imread(‘3.jpg‘);%imread函數(shù)讀取圖像文件
%將彩色圖像轉(zhuǎn)換為黑白并顯示
Sgray?=?rgb2gray(Scolor);%rgb2gray轉(zhuǎn)換成灰度圖
figureimshow(Scolor)title(‘原始彩色圖像‘);%figure命令同時(shí)顯示兩幅圖像
figureimshow(Sgray)title(‘原始黑白圖像‘);
%Step2?圖像預(yù)處理???對Sgray?原始黑白圖像進(jìn)行開操作得到圖像背景
s=strel(‘disk‘13);%strei函數(shù)
Bgray=imopen(Sgrays);%打開sgray?s圖像
figureimshow(Bgray);title(‘背景圖像‘);%輸出背景圖像
%用原始圖像與背景圖像作減法,增強(qiáng)圖像
Egray=imsubtract(SgrayBgray);%兩幅圖相減
figureimshow(Egray);title(‘增強(qiáng)黑白圖像‘);%輸出黑白圖像
%Step3?取得最佳閾值,將圖像二值化
fmax1=double(max(max(Egray)));%egray的最大值并輸出雙精度型
fmin1=double(min(min(Egray)));%egray的最小值并輸出雙精度型
level=(fmax1-(fmax1-fmin1)/3)/255;%獲得最佳閾值
bw22=im2bw(Egraylevel);%轉(zhuǎn)換圖像為二進(jìn)制圖像
bw2=double(bw22);
%Step4?對得到二值圖像作開閉操作進(jìn)行濾波
figureimshow(bw2);title(‘圖像二值化‘);%得到二值圖像
grd=edge(bw2‘canny‘)%用canny算子識別強(qiáng)度圖像中的邊界
figureimshow(grd);title(‘圖像邊緣提取‘);%輸出圖像邊緣
bg1=imclose(grdstrel(‘rectangle‘[519]));%取矩形框的閉運(yùn)算
figureimshow(bg1);title(‘圖像閉運(yùn)算[519]‘);%輸出閉運(yùn)算的圖像
bg3=imopen(bg1strel(‘rectangle‘[519]));%取矩形框的開運(yùn)算
figureimshow(bg3);title(‘圖像開運(yùn)算[519]‘);%輸出開運(yùn)算的圖像
bg2=imopen(bg3strel(‘rectangle‘[191]));%取矩形框的開運(yùn)算
figureimshow(bg2);title(‘圖像開運(yùn)算[191]‘);%輸出開運(yùn)算的圖像
%Step5?對二值圖像進(jìn)行區(qū)域提取,并計(jì)算區(qū)域特征參數(shù)。進(jìn)行區(qū)域特征參數(shù)比較,提取車牌區(qū)域
[Lnum]?=?bwlabel(bg28);%標(biāo)注二進(jìn)制圖像中已連接的部分
Feastats?=?imfeature(L‘basic‘);%計(jì)算圖像區(qū)域的特征尺寸
Area=[Feastats.Area];%區(qū)域面積
BoundingBox=[Feastats.BoundingBox];%[x?y?width?height]車牌的框架大小
RGB?=?label2rgb(L?‘spring‘?‘k‘?‘shuffle‘);?%標(biāo)志圖像向RGB圖像轉(zhuǎn)換
figureimshow(RGB);title(‘圖像彩色標(biāo)記‘);%輸出框架的彩色圖像
lx=0;
for?l=1:num
????width=BoundingBox((l-1)*4+3);%框架寬度的計(jì)算
????hight=BoundingBox((l-1)*4+4);%框架高度的計(jì)算
????if?(width>98?&?width<160?&?hight>25?&?hight<50)%框架的寬度和高度的范圍
????????lx=lx+1;
????????Getok(lx)=l;
????end
end
for?k=?1:lx
????l=Getok(k);????
????startcol=BoundingBox((l-1)*4+1)-2;%開始列
????startrow=BoundingBox((l-1)*4+2)-2;%開始行
????width=BoundingBox((l-1)*4+3)+8;%車牌寬
????hight=BoundingBox((l-1)*4+4)+2;%車牌高
????rato=width/hight;%計(jì)算車牌長寬比
????if?rato>2?&?rato<4???
????????break;
????end
end
sbw1=bw2(startrow:startrow+hightstartcol:startcol+width-1);?%獲取車牌二值子圖
subcol1=Sgray(startrow:startrow+hightstartcol:startcol+width-1);%獲取車牌灰度子圖
figuresubplot(211)imshow(subcol1);title(‘車牌灰度子圖‘);%輸出灰度圖像
subplot(212)imshow(sbw1);title(‘車牌二值子圖‘);%輸出車牌的二值圖
%Step6?計(jì)算車牌水平投影,并對水平投影進(jìn)行峰谷分析
histcol1=sum(sbw1);??????%計(jì)算垂直投影
histrow=sum(sbw1‘);??????%計(jì)算水平投影
figuresubplot(211)bar(histcol1);title(‘垂直投影(含邊框)‘);%輸出垂直投影
subplot(212)bar(histrow);?????title(‘水平投影(含邊框)‘);%輸出水平投影
figuresubplot(211)bar(histrow);?????title(‘水平投影(含邊框)‘);%輸出水平投影
subplot(212)imshow(sbw1);title(‘車牌二值子圖‘);%輸出二值圖
%對水平投影進(jìn)行峰谷分析
meanrow=mean(histrow);%求水平投影的平均值
minrow=min(histrow);%求水平投影的最小值
levelrow=(meanrow+minrow)/2;%求水平投影的平均值
count1=0;
l=1;
for?k=1:hight
????if?histrow(k)<=levelrow?????????????????????????????
????????count1=count1+1;????????????????????????????????
????else?
????????if?count1>=1
????????????markrow(l)=k;%上升點(diǎn)
????????????mar
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????35993??2008-12-27?09:51??work\3.jpg
?????文件????????534??2008-12-27?16:26??work\sam\image1.jpg
?????文件????????521??2008-12-29?15:01??work\sam\image2.jpg
?????文件????????541??2008-12-29?15:01??work\sam\image3.jpg
?????文件????????532??2008-12-29?15:01??work\sam\image4.jpg
?????文件????????536??2008-12-29?15:01??work\sam\image5.jpg
?????文件????????527??2008-12-29?15:01??work\sam\image6.jpg
?????文件????????525??2008-12-29?15:01??work\sam\image7.jpg
?????文件????????519??2008-12-29?15:01??work\sam\image8.jpg
?????文件??????11395??2008-12-27?11:42??work\sam\Sam0.jpg
?????文件??????11169??2008-12-27?11:43??work\sam\Sam1.jpg
?????文件????????514??2008-12-27?10:12??work\sam\Sam2.jpg
?????文件????????522??2008-12-27?10:12??work\sam\Sam3.jpg
?????文件??????11416??2008-12-27?11:43??work\sam\Sam4.jpg
?????文件????????509??2008-12-27?10:12??work\sam\Sam5.jpg
?????文件??????11467??2008-12-27?11:44??work\sam\Sam6.jpg
?????文件??????11219??2008-12-27?11:44??work\sam\Sam7.jpg
?????文件????????529??2008-12-27?10:12??work\sam\Sam8.jpg
?????文件????????510??2008-12-27?10:12??work\sam\Sam9.jpg
?????文件????????528??2008-12-27?10:12??work\sam\SamA.jpg
?????文件??????11546??2008-12-27?10:20??work\sam\SamB.jpg
?????文件??????11417??2008-12-27?10:27??work\sam\SamC.jpg
?????文件??????11464??2008-12-27?10:28??work\sam\SamD.jpg
?????文件??????11490??2008-12-27?10:29??work\sam\SamE.jpg
?????文件??????11379??2008-12-27?11:32??work\sam\SamF.jpg
?????文件??????11520??2008-12-27?11:33??work\sam\SamG.jpg
?????文件??????11427??2008-12-27?11:33??work\sam\SamH.jpg
?????文件??????11107??2008-12-27?11:34??work\sam\SamI.jpg
?????文件??????11242??2008-12-27?11:35??work\sam\SamJ.jpg
?????文件??????11832??2008-12-27?11:35??work\sam\SamK.jpg
............此處省略33個(gè)文件信息
評論
共有 條評論