matlab實現簡單的車牌識別
很多數學建模或者一些畢業**都會涉及到車牌識別,這裡採用matlab語言進行編寫,較為詳盡的介紹了車牌識別的兩種常用方法
方法(一)——簡單定位法(這是自己取的名字,這是對於車牌所處環境顏色不複雜時採用的方法)
進行灰度處理
進行影象邊緣檢測和腐蝕,膨脹和平滑影象輪廓,最後去除小物件
在水平和豎直方向確認車牌的位置並切割
確認好車牌區域後進行角度矯正,方便之後的讀取和文字定位
最後進行二值化和色素堆積(這裡採用的是自己編寫的函式)
這樣就可以根據堆積曲線陣列進行文字分割,再進行比對
我會貼上自己的程式(程式裡面的一些引數需要根據自己的需要進行一定的修正)
clc
clear
%%%第一部分——實現車牌的讀取
addpath e:\
chepai=imread('e:\chepai.png');
figure(1),imshow(chepai),title('讀入原始車牌影象');
%%%第二部分——實現車牌的灰度化
gray1=rgb2gray(chepai);
gray2=imadjust(gray1,[0;0.5],[0;1]);
figure(2)
subplot(211),imshow(gray1),title('rgb2gray()灰度化');
subplot(212),imshow(gray2),title('imadjust()灰度化');
%%%第三部分——實現影象的預處理
my_canny=edge(gray2,'canny',[0.6,0.9]);%邊緣檢測
se=[1;1;1];
i1=imerode(my_canny,se);%影象腐蝕
see=strel('rectangle',[15,80]);
bw2=imdilate (i1, see);%影象膨脹
i2=imclose(bw2,se);%平滑影象輪廓
i3=bwareaopen(i2,2000);%移去小物件
figure(3)
subplot(321),imshow(my_canny),title('影象邊緣檢測');
subplot(322),imshow(i1);title('腐蝕後影象');
subplot(323),imshow(bw2),title('影象膨脹');
subplot(324),imshow(i2),title('平滑影象輪廓');
subplot(3,2,5:6),imshow(i3),title('移去小物件');
%%%第四部分——實現車牌區域的擷取
%%%行方向確定區域
[x,y,z]=size(i3);
myi=double(i3);
x_white=zeros(x,1);
for i=1:x
for j=1:y
if(myi(i,j,1)==1)
x_white(i,1)= x_white(i,1)+1;
end
end
end[max_x, pos1]=max(x_white);
px_top=pos1;
while ((x_white(px_top,1)>=50)&&(px_top>1))
px_top=px_top-1;
end
px_bottom=pos1;
while ((x_white(px_bottom,1)>=10)&&(px_bottom19)&&(py_top>1))
py_top=py_top-1;
end
py_bottom=pos2;
while ((y_white(1,py_bottom)>25)&&(py_bottom這裡再介紹第二種方法——hsv影象識別法,這種方法可以爭對比較複雜的顏色背景,推薦使用。
matlab車牌號識別
識別主程式 t round gmax gmax gmin 3 t 為二值化的閾值 roti im2bw roti,t 256 subplot 3,2,1 imshow roti title 二值化影象 bw bwareaopen roti,50 subplot 3,2,2 imshow bw tit...
tensorflow實現車牌識別
學習1 中文車牌識別 學習2 國外車牌識別 returns the truth value of x y element wise.args 2 tf.configproto 一般用在建立session的時候,用來對session進行引數配置。with tf.session config tf.co...
基於MATLAB的夜間車牌識別處理
先看處理結果 簡單說一下實現思路 讀取,轉灰度,計算灰度直方圖,估算閾值 這裡的閾值計算很重要,經過閾值演算法,選取乙個最恰當的閾值 之後二值化。顯示影象即可。後面閾值的計算補更。車牌 clear all clcps imread chepai.png subplot 1,2,1 imshow ps...