基于MATLAB的车牌定位和识别
%function carreco
clc;
clear all;
%==========================================================
%說明:
%
%
%===========================================================
% ==============測定算法執行的時間,開始計時=================
tic
%=====================讀入圖片================================
[fn,pn,fi]=uigetfile('*.jpg','選擇圖片');
I=imread([pn fn]);figure,imshow(I);title('原始圖像');%顯示原始圖像
chepailujing=[pn fn]
I_bai=I;
[PY2,PY1,PX2,PX1]=caitu_fenge(I);
% I=rgb2hsv(I);
% [PY2,PY1,PX2,PX1]=caitu_tiqu(I,I_bai);%用HSI模型識別藍色,用rgb模型識別白色
%================分割車牌區域=================================
%===============車牌區域根據面積二次修正======================
[PY2,PY1,PX2,PX1,threshold]=SEC_xiuzheng(PY2,PY1,PX2,PX1);
%==============更新圖片=============================
Plate=I_bai(PY1:PY2,PX1:PX2,:);%使用caitu_tiqu
%==============考慮用腐蝕解決藍色車問題=============
bw=Plate;figure,imshow(bw);title('車牌圖像');%hsv彩圖提取圖像
%==============這里要根據圖像的傾斜度進行選擇這里選擇的圖片20090425686.jpg
bw=rgb2gray(bw);figure,imshow(bw);title('灰度圖像');
%================傾斜校正======================
qingxiejiao=rando_bianhuan(bw)
bw=imrotate(bw,qingxiejiao,'bilinear','crop');figure,imshow(bw);title('傾斜校正');%取值為負值向右旋轉
%==============================================
bw=im2bw(bw,graythresh(bw));%figure,imshow(bw);
bw=bwmorph(bw,'hbreak',inf);%figure,imshow(bw);
bw=bwmorph(bw,'spur',inf);%figure,imshow(bw);title('擦除之前');
bw=bwmorph(bw,'open',5);%figure,imshow(bw);title('閉合運算');
bw = bwareaopen(bw, threshold);figure,imshow(bw);title('擦除');
%==================加入進度條================================
% h=waitbar(0,'程序運行中,請稍等......')
% for i=1:10000
% ? ? waitbar(i/5000,h)?
% end
% close(h);
%wavplay(wavread('程序運行中.wav'),22000);
%==========================================================
bw=~bw;figure,imshow(bw);title('擦除反色');?
%=============對圖像進一步裁剪,保證邊框貼近字體===========
bw=touying(bw);figure;imshow(bw);title('Y方向處理');
bw=~bw;
bw = bwareaopen(bw, threshold);
bw=~bw;%figure,imshow(bw);title('二次擦除');
% [y,x]=size(bw);%對長寬重新賦值
% %=================文字分割=================================
% fenge=shuzifenge(bw,qingxiejiao)
% [m,k]=size(fenge);
% %=================顯示分割圖像結果=========================?
% figure;
% for s=1:2:k-1
% ? ? subplot(1,k/2,(s+1)/2);imshow(bw( 1:y,fenge(s):fenge(s+1)));
% end
?D174
總結
以上是生活随笔為你收集整理的基于MATLAB的车牌定位和识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于BP神经网络+HOG特征提取的视频中
- 下一篇: 通过MATLAB读取mnist数据库