日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB车牌识别GUI设计实现

發(fā)布時(shí)間:2023/12/31 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB车牌识别GUI设计实现 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?目 錄
一. 課程設(shè)計(jì)任務(wù) 1
二. 課程設(shè)計(jì)原理及設(shè)計(jì)方案 2
三. 課程設(shè)計(jì)的步驟和結(jié)果 3
四. 課程設(shè)計(jì)總結(jié) 4
五. 設(shè)計(jì)體會(huì) 5
六. 參考文獻(xiàn) 6
?設(shè)計(jì)任務(wù)
在交通管理過程中,通常采用視頻監(jiān)控方式對(duì)闖紅燈和超速等違章車輛進(jìn)行監(jiān)督。對(duì)違章車輛,需要自動(dòng)檢測(cè)車牌信息,提取車牌號(hào)碼,以便查找車主信息和監(jiān)督管理。國(guó)內(nèi)常用的一般車牌通常是是藍(lán)底白字,長(zhǎng)寬比3:1。
1、對(duì)車牌圖像進(jìn)行預(yù)處理,然后進(jìn)行車牌定位;
2、進(jìn)行字符分割;
2、對(duì)車牌中的數(shù)字、字母和漢字進(jìn)行提取和識(shí)別;
3、要求自行設(shè)計(jì)方案、編寫代碼實(shí)現(xiàn)上述功能,并設(shè)計(jì)車牌識(shí)別的軟件界面。
一. 設(shè)計(jì)原理及設(shè)計(jì)方案
1.系統(tǒng)簡(jiǎn)述
一個(gè)完整的車牌識(shí)別系統(tǒng)閉應(yīng)包括車輛檢測(cè)、圖像采集、圖像預(yù)處理、車牌定位、字符分割、字符識(shí)別等單元。當(dāng)車輛到達(dá)觸發(fā)圖像采集單元時(shí),系統(tǒng)采集當(dāng)前的視頻圖像。車輛識(shí)別單元對(duì)圖像進(jìn)行處理,定位出牌照位置,再將車牌中的字符分割出來進(jìn)行識(shí)別,然后組成車牌號(hào)碼輸出。車牌識(shí)別系統(tǒng)原理如圖l所示。
?

(1)圖像預(yù)處理:對(duì)汽車圖像進(jìn)行圖像轉(zhuǎn)換、圖像增強(qiáng)和邊緣檢測(cè)等。
(2)車牌定位:從預(yù)處理后的汽車圖像中分割出車牌圖像。即在一幅車輛圖像中找到車牌所在的位置。
(3)字符分割:對(duì)車牌圖像進(jìn)行幾何校正、去噪、二值化以及字符分割以從車牌圖像中分離出組成車牌號(hào)碼的單個(gè)字符圖像
(4)字符識(shí)別:對(duì)分割出來的字符進(jìn)行預(yù)處理(二值化、歸一化),然后分析提取,對(duì)分割出的字符圖像進(jìn)行識(shí)別給出文本形式的車牌號(hào)碼。
為了用于牌照的分割和牌照字符的識(shí)別,原始圖象應(yīng)具有適當(dāng)?shù)牧炼?#xff0c;較大的對(duì)比度和清晰可辯的牌照?qǐng)D象。但由于該系統(tǒng)的攝像部分工作于開放的戶外環(huán)境,加之車輛牌照的整潔度、自然光照條件、拍攝時(shí)攝像機(jī)與牌照的矩離和角度以及車輛行駛速度等因素的影響,牌照?qǐng)D象可能出現(xiàn)模糊、歪斜和缺損等嚴(yán)重缺陷,因此需要對(duì)原始圖象進(jìn)行識(shí)別前的預(yù)處理。
牌照的定位和分割是牌照識(shí)別系統(tǒng)的關(guān)鍵技術(shù)之一,其主要目的是在經(jīng)圖象預(yù)處理后的原始灰度圖象中確定牌照的具體位置,并將包含牌照字符的一塊子圖象從整個(gè)圖象中分割出來,供字符識(shí)別子系統(tǒng)識(shí)別之用,分割的準(zhǔn)確與否直接關(guān)系到整個(gè)牌照字符識(shí)別系統(tǒng)的識(shí)別率。
由于拍攝時(shí)的光照條件、牌照的整潔程度的影響,和攝像機(jī)的焦距調(diào)整、鏡頭的光學(xué)畸變所產(chǎn)生的噪聲都會(huì)不同程度地造成牌照字符的邊界模糊、細(xì)節(jié)不清、筆劃斷開或粗細(xì)不均,加上牌照上的污斑等缺陷,致使字符提取困難,進(jìn)而影響字符識(shí)別的準(zhǔn)確性。因此,需要對(duì)字符在識(shí)別之前再進(jìn)行一次針對(duì)性的處理。
車牌識(shí)別的最終目的就是對(duì)車牌上的文字進(jìn)行識(shí)別。識(shí)別方法目前主要有基于模板匹配算法和基于人工神經(jīng)網(wǎng)絡(luò)算法。
2.圖像預(yù)處理
?

2.1灰度變換
輸入的彩色圖像包含大量顏色信息,會(huì)占用較多的存儲(chǔ)空間,且處理時(shí)也會(huì)降低系統(tǒng)的執(zhí)行速度,因此對(duì)圖像進(jìn)行識(shí)別等處理時(shí).常將彩色圖像轉(zhuǎn)換為灰度圖像,以加快處理速度。可對(duì)圖像進(jìn)行灰度化處理、提取背景圖像、增強(qiáng)處理、圖像二值化,邊緣檢測(cè)、濾波等處理。然后采用robert算子進(jìn)行邊緣檢測(cè),再用imopen和imclose對(duì)所得二值圖像作開、閉操作進(jìn)行濾波。
彩色圖像分為R、G、B三個(gè)分量,分別顯示出紅、綠、藍(lán)等各種顏色,灰度化就是使彩色的R、G、B 分量相等的過程。灰度值大的像素點(diǎn)比較亮(像素值最大為255,為白色) ,反之比較暗(像素值最小為 0,是黑色) 。
圖像灰度化的算法主要有以下 3 種:
1)最大值法:使轉(zhuǎn)化后R、G、B的值等于轉(zhuǎn)化前 3 個(gè)值中最大的一個(gè),即:R=G=B=max(R,G,B),這種方法轉(zhuǎn)換的灰度圖亮度很高。
2)平均值法:使轉(zhuǎn)化后R、G、B的值為轉(zhuǎn)化前R、G、B的平均值 R=G=B=(R+G+B)/3 這種方法產(chǎn)生的灰度圖像比較柔和。
3)加權(quán)平均值法:按照一定的權(quán)值,對(duì)R、G、B的值加權(quán)平均。
2.2邊緣提取
數(shù)字圖像的邊緣檢測(cè)是圖像分割、目標(biāo)區(qū)域的識(shí)別、區(qū)域形狀提取等圖像分析領(lǐng)域十分重要的基礎(chǔ)。邊緣是圖像的重要特征,圖像理解和分析的第一步往往就是邊緣檢測(cè)。目前,邊緣檢測(cè)已成為計(jì)算機(jī)視覺研究領(lǐng)域最活躍的課題之一,在工程應(yīng)用中占有十分重要的地位。車牌的一個(gè)重要特征就是在該區(qū)域存在大量的邊緣信息,所以邊緣檢測(cè)對(duì)于我們進(jìn)行車牌識(shí)別來說也是相當(dāng)重要的。
邊緣是以圖像的局部特征不連續(xù)的形式出現(xiàn)的,也就是指圖像局部亮度變化最顯著的部分,如灰度值的突變、顏色的突變、紋理結(jié)構(gòu)的突變等,同時(shí)邊緣也是不同區(qū)域的分界處。圖像邊緣有方向和幅度兩個(gè)特性,通常沿邊緣的走向灰度變化平緩,垂直于邊緣走向灰度變化劇烈。由于邊緣是圖像上灰度變化最劇烈的地方,傳統(tǒng)的邊緣檢測(cè)就利用這個(gè)特點(diǎn),通過計(jì)算圖像中像素的梯度值來確定邊緣點(diǎn)。
常用的圖像邊緣提取算子有Roberts算子、sobel算子、Prewitt算子、Laplacian算子等,它們的模板分別如下:
?

?
3.車牌定位
自然環(huán)境下,汽車圖像背景復(fù)雜,光照不均勻,在自然背景中準(zhǔn)確地確定牌照區(qū)域是整個(gè)圖像識(shí)別過程中的關(guān)鍵。首先對(duì)采集到的圖像進(jìn)行大范圍相關(guān)搜索,找到符合汽車牌照特征的若干區(qū)域作為候選區(qū),然后對(duì)這些侯選區(qū)域做進(jìn)一步分析、評(píng)判,最后選定一個(gè)最佳區(qū)域作為牌照區(qū)域。將其從圖像中分割嘲出來,同時(shí)要考慮車牌傾斜問題。算法流程如下:
(1)對(duì)二值圖像進(jìn)行區(qū)域提取。計(jì)算并比較區(qū)域特征參數(shù),提取車牌區(qū)域。進(jìn)行閉運(yùn)算,可使得水平相鄰的邊緣連接成為連通區(qū)域;進(jìn)行開運(yùn)算可使得車牌區(qū)域與其它背景區(qū)域分開,成為獨(dú)立的連通域。
(2)計(jì)算包含所標(biāo)記區(qū)域的最小寬和高。并根據(jù)先前知識(shí),提取并顯示更接近的車牌二子值圖。
(3)通過計(jì)算車牌旋轉(zhuǎn)角度解決車牌傾斜問題。由于車牌傾斜導(dǎo)致投影效果峰谷不明顯,需車牌矯正處理,采取線性擬合方法,計(jì)算出車牌上邊或下邊圖像值為1的點(diǎn)擬合直線與水平X軸的夾角。
4.字符分割
完成牌照區(qū)域的定位后,再將牌照區(qū)域分割為單個(gè)字符,可采用垂直投影法。由于字符在垂直方向上的投影必然在字符間或字符內(nèi)的間隙處取得局部最小值.并且該位置應(yīng)滿足牌照的字符書寫格式、字符、尺寸限制等條件。利用垂直投影法實(shí)現(xiàn)復(fù)雜環(huán)境下汽車圖像中的字符分割效果較好。
通過分析計(jì)算字符的水平投影和垂直投影,可獲得車牌字符高度、字符頂行與尾行、字符寬度、每個(gè)字符的中心位置,以方便提取分割字符。然后計(jì)算車牌垂直投影,去掉車牌垂直邊框,獲取車牌及字符平均寬度。最后計(jì)算車牌每個(gè)字符的中心位置和最大字符寬度,提取分割字符,其算法流程如圖3所示。
?

此處采用的方法為尋找連續(xù)有文字的塊,若長(zhǎng)度大于某閾值,則認(rèn)為該塊有兩個(gè)字符組成,需要分割。算法如下:
?

5.字符識(shí)別
字符識(shí)別方法主要有基于模板匹配算法和基于人工神經(jīng)網(wǎng)絡(luò)算法。基于模板匹配算法是首先將分割后的字符二值化,并將其尺寸縮放為字符數(shù)據(jù)庫中模板的大小,然后與所有模板進(jìn)行匹配,最后選取最佳匹配作為結(jié)果。建立數(shù)字庫對(duì)該方法在車牌識(shí)別過程中很重要,數(shù)字庫準(zhǔn)確才能保證檢測(cè)出的數(shù)據(jù)正確。基于人工神經(jīng)元網(wǎng)絡(luò)的算法有兩種,一種是先對(duì)特征提取待識(shí)別字符,然后用所獲得的特征訓(xùn)練神經(jīng)網(wǎng)絡(luò)分配器;另一種是直接將待處理圖像輸入網(wǎng)絡(luò)由網(wǎng)絡(luò)自動(dòng)實(shí)現(xiàn)特征提取直至識(shí)別結(jié)果。模板匹配實(shí)現(xiàn)簡(jiǎn)單,當(dāng)字符較規(guī)整時(shí),對(duì)字符圖像的缺損、污跡干擾適應(yīng)力強(qiáng)且識(shí)別率高。因此,這里將模板匹配作為車牌字符識(shí)別的主要方法。
模板匹配是圖象識(shí)別方法中最具代表性的基本方法之一,它是將從待識(shí)別的圖象或圖象區(qū)域f(i,j)中提取的若干特征量與模板T(i,j)相應(yīng)的特征量逐個(gè)進(jìn)行比較,計(jì)算它們之間規(guī)格化的互相關(guān)量,其中互相關(guān)量最大的一個(gè)就表示期間相似程度最高,可將圖象歸于相應(yīng)的類。也可以計(jì)算圖象與模板特征量之間的距離,用最小距離法判定所屬類。然而,通常情況下用于匹配的圖象各自的成像條件存在差異,產(chǎn)生較大的噪聲干擾,或圖象經(jīng)預(yù)處理和規(guī)格化處理后,使得圖象的灰度或像素點(diǎn)的位置發(fā)生改變。在實(shí)際設(shè)計(jì)模板的時(shí)候,是根據(jù)各區(qū)域形狀固有的特點(diǎn),突出各類似區(qū)域之間的差別,并將容易由處理過程引起的噪聲和位移等因素都考慮進(jìn)去,按照一些基于圖象不變特性所設(shè)計(jì)的特征量來構(gòu)建模板,就可以避免上述問題。
?

一. 步驟和結(jié)果
此處以車牌1作為示例圖像

  • 獲取圖像
    [fn,pn,fi]=uigetfile(’*.bmp’,‘選擇圖片’);
    Scolor=imread([pn fn]);
  • ?

  • 圖像灰度化
    Sgray = rgb2gray(Scolor);%rgb2gray轉(zhuǎn)換成灰度圖
  • ?
    3. 圖像增強(qiáng)
    s=strel(‘disk’,13);%strei函數(shù)13
    Bgray=imopen(Sgray,s);%打開sgray s圖像
    Egray=imsubtract(Sgray,Bgray);%兩幅圖相減

    ?
    4. 邊緣提取
    圖像中車輛牌照是具有比較顯著特征的一塊圖象區(qū)域,這此特征表現(xiàn)在:近似水平的矩形區(qū)域;其中字符串都是按水平方向排列的;在整體圖象中的位置較為固定。正是由于牌照?qǐng)D象的這些特點(diǎn),再經(jīng)過適當(dāng)?shù)膱D象變換,它在整幅中可以明顯地呈現(xiàn)出其邊緣。邊緣提取是較經(jīng)典的算法,此處邊緣的提取采用的是Roberts算子。
    grd=edge(Egray,‘robert’,0.09,‘both’);
    se=[1;1;1]; %線型結(jié)構(gòu)元素
    I3=imerode(grd,se); %腐蝕圖像

    ?

  • 開閉運(yùn)算進(jìn)行濾波
    牌照?qǐng)D象經(jīng)過了以上的處理后,牌照區(qū)域已經(jīng)十分明顯,而且其邊緣得到了勾勒和加強(qiáng)。此時(shí)可進(jìn)一步確定牌照在整幅圖象中的準(zhǔn)確位置。這里選用數(shù)學(xué)形態(tài)學(xué)的方法,基本思想是用具有一定形態(tài)的機(jī)構(gòu)元素去量度和提取圖像中的對(duì)應(yīng)形狀以達(dá)到對(duì)圖像分析和識(shí)別的目的。數(shù)學(xué)形態(tài)學(xué)的應(yīng)用可以簡(jiǎn)化圖像數(shù)據(jù),保持它們基本的形態(tài)特征,并除去不相干的結(jié)構(gòu)。在本程序中用到了開閉兩個(gè)基本運(yùn)算,最后還用了bwareaopen來去除對(duì)象中不相干的小對(duì)象。
    bg1=imclose(I3,strel(‘rectangle’,[8,18]));%取矩形框的閉運(yùn)算即平滑8,18
    bg3=imopen(bg1,strel(‘rectangle’,[8,14]));%取矩形框的開運(yùn)算8,18
    bg2=bwareaopen(bg3,700);%去除聚團(tuán)灰度值小于700的部分
  • ?
    6. 車牌初步定位
    通過比較累計(jì)行像素灰度值和列像素灰度值確定車牌的真實(shí)位置。
    [y,x,]=size(bg2);
    I6=double(bg2);
    %繪制行曲線圖
    Y1=zeros(y,1);%y行1列的零矩陣 累計(jì)行像素灰度值
    for i=1:y
    for j=1:x
    if(I6(i,j,1)==1)
    Y1(i,1)= Y1(i,1)+1;
    end
    end
    end
    [temp, MaxY]=max(Y1);
    PY1=MaxY;
    while ((Y1(PY1,1)>=50)&&(PY1>1))
    PY1=PY1-7;
    end
    PY2=MaxY;
    while ((Y1(PY2,1)>=50)&&(PY2<y))
    PY2=PY2+7;
    end
    %繪制列曲線圖
    X1=zeros(1,x);% 累計(jì)列像素灰度值
    for j=1:x
    for i=PY1:PY2
    if(I6(i,j,1)==1)
    X1(1,j)= X1(1,j)+1;
    end
    end
    end
    PX1=1;
    while ((X1(1,PX1)??)&&(PX1<x))
    PX1=PX1+1;
    end
    PX2=x;
    while ((X1(1,PX2)??)&&(PX2>PX1))
    PX2=PX2-1;
    end
    DW=Scolor(PY1:PY2,PX1:PX2,:);%車牌定位后圖像

    ?
    7. 進(jìn)一步車牌定位
    經(jīng)過上述方法分割出來的車牌圖像中存在目標(biāo)物體、背景還有噪聲,要想從圖像中直接提取出目標(biāo)物體,最常用的方法就是設(shè)定一個(gè)閾值T,用T將圖像的數(shù)據(jù)分成兩部分:大于T的像素群和小于T的像素群,即對(duì)圖像二值化。然后通過行像素點(diǎn)的累計(jì)值去除頂端和底端不感興趣的地方。
    if isrgb(DW)
    I1 = rgb2gray(DW); %將RGB圖像轉(zhuǎn)化為灰度圖像
    else I1=DW;
    end
    g_max=double(max(max(I1)));
    g_min=double(min(min(I1)));
    T=round(g_max-(g_max-g_min)/3); % T 為二值化的閾值
    [m,n]=size(I1);% d:二值圖像
    imane_bw=im2bw(I1,T/256); %二值化車牌圖像
    [y1,x1,z1]=size(imane_bw);
    I3=double(imane_bw);
    TT=1;
    %%%%%%%去除圖像頂端和底端的不感興趣區(qū)域%%%%%
    Y1=zeros(y1,1);
    for i=1:y1
    for j=1:x1
    if(I3(i,j,1)==1)
    Y1(i,1)= Y1(i,1)+1 ;
    end
    end
    end
    Py1=1;Py0=1;
    while ((Y1(Py0,1)<9)&&(Py0<y1))
    Py0=Py0+1;
    end
    Py1=Py0;
    while((Y1(Py1,1)>=9)&&(Py1<y1))
    Py1=Py1+1;
    end
    I2=imane_bw(Py0:Py1,:😅; %目標(biāo)車牌區(qū)域

    ?
    8. 車牌字符分割
    字符分割的算法很多,因?yàn)檐嚺谱址g間隔較大,通常不會(huì)出現(xiàn)字符粘連情況,所以此處采用的方法為尋找連續(xù)有文字的塊,若長(zhǎng)度大于某閾值,則認(rèn)為該塊有兩個(gè)字符組成,需要分割。一般分割出來的字符要進(jìn)行進(jìn)一步的處理,以滿足下一步字符識(shí)別的需要。但是對(duì)于車牌的識(shí)別,并不需要太多的處理就已經(jīng)可以達(dá)到正確識(shí)別的目的。在此只進(jìn)行了歸一化處理,然后進(jìn)行后期處理。
    % 尋找連續(xù)有文字的塊,若長(zhǎng)度大于某閾值,則認(rèn)為該塊有兩個(gè)字符組成,需要分割
    d=qiege(I2);
    [m,n]=size(d);
    k1=1;k2=1;s=sum(d);j=1;
    while j~=n
    while s(j)0
    j=j+1;
    end
    k1=j;
    while s(j)~=0 && j<=n-1
    j=j+1;
    end
    k2=j-1;
    if k2-k1>=round(n/6.5)
    [val,num]=min(sum(d(:,[k1+5:k2-5])));
    d(:,k1+num+5)=0; % 分割
    end
    end
    % 再切割
    d=qiege(d);
    % 切割出 7 個(gè)字符
    y1=10;y2=0.25;flag=0;word1=[];
    while flag0
    [m,n]=size(d);
    left=1;wide=0;
    while sum(d(:,wide+1))~=0
    wide=wide+1;
    end
    if wide<y1 % 認(rèn)為是左側(cè)干擾
    d(:,[1:wide])=0;
    d=qiege(d);
    else
    temp=qiege(imcrop(d,[1 1 wide m]));
    [m,n]=size(temp);
    all=sum(sum(temp));
    two_thirds=sum(sum(temp([round(m/3):2round(m/3)]😅));
    if two_thirds/all>y2
    flag=1;word1=temp; % WORD 1
    end
    d(:,[1:wide])=0;d=qiege(d);
    end
    end
    [word2,d]=getword(d);% 分割出第二個(gè)字符
    [word3,d]=getword(d); % 分割出第三個(gè)字符
    [word4,d]=getword(d); % 分割出第四個(gè)字符
    [word5,d]=getword(d); % 分割出第五個(gè)字符
    [word6,d]=getword(d); % 分割出第六個(gè)字符
    [word7,d]=getword(d); % 分割出第七個(gè)字符
    [m,n]=size(word1);
    %歸一化大小為2214
    word1=imresize(word1,[22 14]);
    ……
    word7=imresize(word7,[22 14]);
    imwrite(word1,‘1.jpg’);
    ……
    imwrite(word7,‘7.jpg’);

    ?
    9. 車牌字符識(shí)別
    此處采用相減的方法來求得字符與模板中哪一個(gè)字符最相似,然后找到相似度最大的輸出。汽車牌照的字符一般有七個(gè),大部分車牌第一位是漢字,通常代表車輛所屬省份,緊接其后的為字母與數(shù)字。車牌字符識(shí)別與一般文字識(shí)別在于它的字符數(shù)有限,漢字共約30多個(gè),大寫英文字母26個(gè),數(shù)字10個(gè)。
    首先取字符模板,接著依次取待識(shí)別字符與模板進(jìn)行匹配,將其與模板字符相減,得到的非0值越少那么就越匹配。把每一幅相減后的圖的非0值個(gè)數(shù)保存,即為識(shí)別出來的結(jié)果。
    liccode=char([‘0’:‘9’ ‘A’:‘Z’ ‘藏川甘贛貴桂黑滬吉濟(jì)冀津晉京警蘭遼領(lǐng)魯蒙閩寧青瓊陜使蘇皖湘新學(xué)渝豫粵云浙’]); %建立自動(dòng)識(shí)別字符代碼表
    tt=1;
    l=1;
    for I=1:7
    ii=int2str(I);
    t=imread([ii,’.jpg’]);
    t=255-t;
    level=graythresh(t);
    t=im2bw(t,level);
    SegBw2=imresize(t,[22 14],‘nearest’);
    if tt1 %第一位漢字識(shí)別
    kmin=37;
    kmax=72;
    t=~t;
    SegBw2=imresize(t,[22 14],‘nearest’);
    elseif tt2 %第二位 A~Z 字母識(shí)別
    kmin=11;
    kmax=36;
    else %第三位以后是字母或數(shù)字識(shí)別
    kmin=1;
    kmax=36;
    end
    for k2=kmin:kmax
    fname=strcat(‘code module\Sam’,liccode(k2),’.jpg’);
    SamBw22 = imread(fname);
    SamBw22 = rgb2gray(SamBw22);
    SamBw2=imresize(SamBw22,[22 14],‘nearest’);
    level=graythresh(SamBw2);
    SamBw2=im2bw(SamBw2,level);
    for i=1:22
    for j=1:14
    SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j);
    end
    end
    % 以上相當(dāng)于兩幅圖相減得到第三幅圖
    Dmax=0;
    for k1=1:22
    for l1=1:14
    if ( SubBw2(k1,l1) > 0 || SubBw2(k1,l1) <0 )
    Dmax=Dmax+1;
    end
    end
    end
    Error(k2)=Dmax;
    end
    Error1=Error(kmin:kmax);
    MinError=min(Error1);
    findc=find(Error1MinError);
    if tt1
    findc=findc+36;
    end
    if tt2
    findc=findc+10;
    end
    tt=tt+1;
    res=liccode(findc);
    shibiejieguo(1,l)=res;
    l=l+1;
    end
    %%%getword子函數(shù)為:
    function [word,result]=getword(d)
    word=[];flag=0;y1=8;y2=0.5;
    while flag0
    [m,n]=size(d);
    wide=0;
    while sum(d(:,wide+1))~=0 && wide<=n-2
    wide=wide+1;
    end
    temp=qiege(imcrop(d,[1 1 wide m]));
    [m1,n1]=size(temp);
    if wide<y1 && n1/m1>y2
    d(:,[1:wide])=0;
    if sum(sum(d))~=0
    d=qiege(d); % 切割出最小范圍
    else word=[];flag=1;
    end
    else
    word=qiege(imcrop(d,[1 1 wide m]));
    d(:,[1:wide])=0;
    if sum(sum(d))~=0;
    d=qiege(d);flag=1;
    else d=[];
    end
    end
    end
    result=d;
    %%%qiege子函數(shù)為:
    function e=qiege(d)
    [m,n]=size(d);
    top=1;bottom=m;left=1;right=n; % init
    while sum(d(top,:))==0 && top<=m
    top=top+1;
    end
    while sum(d(bottom,:))==0 && bottom>1
    bottom=bottom-1;
    end
    while sum(d(:,left))==0 && left<n
    left=left+1;
    end
    while sum(d(:,right))==0 && right>=1
    end
    dd=right-left;
    hh=bottom-top;
    e=imcrop(d,[left top dd hh]);

    得出車牌檢測(cè)結(jié)果為:陜A906L4
    2. 對(duì)話框顯示及語音朗讀
    msgbox(shibiejieguo,‘識(shí)別結(jié)果’);
    duchushengyin(shibiejieguo);

    ?
    10. 設(shè)計(jì)GUI界面
    界面設(shè)計(jì)如下:
    ?

    界面可顯示車輛的原始圖像,車牌定位圖像,進(jìn)一步定位的車牌區(qū)域,車牌字符分割后的結(jié)果以及車牌的識(shí)別結(jié)果。瀏覽文件按鈕可在文件夾中選擇要處理的圖片,然后按下確認(rèn)按鈕,開始處理,按下結(jié)束后,所有圖片及字符顯示均清除。
    11. 設(shè)計(jì)總結(jié)
    本文主要解決了以下問題:1、在背景的圖象中如何定位牌照2、將定位的牌照區(qū)域中的字符分割;3、對(duì)分割下來的牌照字符提取具有分類能力的特征,并對(duì)漢字、字母及數(shù)字均進(jìn)行識(shí)別。在車輛牌照字符識(shí)別系統(tǒng)的研究領(lǐng)域,近幾年出現(xiàn)了許多切實(shí)可行的識(shí)別技術(shù)和方法,從這些新技術(shù)和方法中可以看到:單一的預(yù)處理和識(shí)別技術(shù)都無法達(dá)到理想的結(jié)果,多種方法的有機(jī)結(jié)合才能使系統(tǒng)有效識(shí)別能力提高。在本系統(tǒng)的設(shè)計(jì)時(shí),也汲取了以上一些算法的思想,結(jié)合實(shí)際,反復(fù)比較,綜合分析。
    根據(jù)車牌特點(diǎn),一般采用的車牌定位算法有:1.邊緣檢測(cè)定位算法;2.利用哈夫變換進(jìn)行車牌定位;3.色彩分割提取車牌等。這里我采用的是邊緣檢測(cè)的方法實(shí)現(xiàn)定位的。
    字符分割的方法也有多種:1. 基于聚類分析的字符分割;2. 投影分割的方法;3.基于模板匹配的字符分割等。最常用的是投影分割,主要是針對(duì)在車牌定位,圖像預(yù)處理后比較規(guī)則的車牌圖像。優(yōu)點(diǎn)是程序邏輯設(shè)計(jì)簡(jiǎn)單,循環(huán)執(zhí)行功能單一,便于設(shè)計(jì)和操作,程序執(zhí)行時(shí)間短。
    字符識(shí)別的基本方法通常有三類:1.結(jié)構(gòu)特征分析方法;2.模板匹配法;3.神經(jīng)網(wǎng)絡(luò)法。此處采用的是模板匹配的方法,即是將要識(shí)別的字符與事先構(gòu)造好的模板進(jìn)行比對(duì),根據(jù)與模板的相似度的大小來確定最終的識(shí)別結(jié)果。
    但是系統(tǒng)本身還存在許多不足,距離具體實(shí)用的要求仍有很大差距,但我卻在這次設(shè)計(jì)中學(xué)到了很多知識(shí)。車牌識(shí)別基本太多人做了,如果做成比較大型的設(shè)計(jì),建議加創(chuàng)新元素,否則很low,如計(jì)時(shí)計(jì)費(fèi),停車場(chǎng)應(yīng)用,違章檢測(cè),結(jié)合人臉做車主溯源等都不錯(cuò)的設(shè)計(jì)。
    12. 設(shè)計(jì)體會(huì)
    通過這次設(shè)計(jì)使我明白了自己原來的數(shù)字圖像處理知識(shí)還比較欠缺,這個(gè)設(shè)計(jì)讓我學(xué)到了很多東西,在這整個(gè)過程中我遇到了很多困難,查閱了大量的資料,也得到了老師和同學(xué)的幫助,才逐步將一個(gè)個(gè)困難克服。其中,讓我困擾很長(zhǎng)時(shí)間的便是許多參數(shù)的選取。在圖像的預(yù)處理階段,開閉運(yùn)算的矩陣選取,根據(jù)行列累計(jì)像素灰度值定位車牌的閾值選取以及車牌分割的參數(shù)等都需要多次的嘗試與總結(jié)才可以找到適合多幅圖像的合適的值。另外,字符識(shí)別的過程中模板的選取很關(guān)鍵,由于我檢測(cè)出來的車牌是黑底白字的,而我所使用的模板是白底黑字的,曾一度檢測(cè)錯(cuò)誤,后來才發(fā)現(xiàn)這個(gè)問題,經(jīng)過二值變換之后取反再比較,可以得到正確的識(shí)別字符。中間也更換過幾次模板,要選取與車牌數(shù)字最接近的模板,否則很容易識(shí)別錯(cuò)誤。
    總之,理論只有應(yīng)用到實(shí)際中才能學(xué)著更有意義。學(xué)習(xí)是一個(gè)長(zhǎng)期積累的過程,在后的工作、生活中都應(yīng)該不斷的學(xué)習(xí),努力提高自己知識(shí)和綜合素質(zhì)。此次設(shè)計(jì)也大大提高了我的動(dòng)手能力,使我充分體會(huì)到了在創(chuàng)造過程中探索的艱難和成功時(shí)的喜悅。雖然這個(gè)設(shè)計(jì)目前實(shí)現(xiàn)了少數(shù)的車輛牌照識(shí)別,但是在設(shè)計(jì)過程中所學(xué)到的學(xué)習(xí)方法是我最大收獲和財(cái)富,相信定會(huì)使我受益終身。
    13. 參考文獻(xiàn)
    1 王剛,冀小平. 基于MATLAB的車牌識(shí)別系統(tǒng)的研究.電子設(shè)計(jì)工程,2019.17(11):72-73
    2 岡薩雷斯.數(shù)字圖像處理(第二版).電子工業(yè)出版社,2007.8
    3 宋建才.汽車牌照識(shí)別技術(shù)研究叨.工業(yè)控制計(jì)算機(jī),2014(4):44—45.
    4 陳永超. 基于數(shù)字圖像處理的車牌識(shí)別研究.武漢理工大學(xué)碩士學(xué)位論文. 2016:16-19
    5 王璐. 基于 MATLAB的車牌識(shí)別系統(tǒng)研究.上海交通大學(xué)碩士學(xué)位論文. 2019:15-27
    6 張 引,潘云鶴.面向車輛牌照字符識(shí)別的預(yù)處理算法.計(jì)算機(jī)應(yīng)用研究,2019(7):85~87
    7 郁梅等.基于視覺的車輛牌照檢測(cè).計(jì)算機(jī)應(yīng)用研究.2018(5):65~67
    ?

    總結(jié)

    以上是生活随笔為你收集整理的MATLAB车牌识别GUI设计实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。