基於MATLAB的夜間車牌識別處理

2021-09-22 10:02:16 字數 1383 閱讀 6307

先看處理結果

簡單說一下實現思路:

讀取,轉灰度,計算灰度直方圖,估算閾值(這裡的閾值計算很重要,經過閾值演算法,選取乙個最恰當的閾值),之後二值化。顯示影象即可。後面閾值的計算補更。 

%%車牌

clear all

clcps=imread('chepai.png');

subplot(1,2,1);

imshow(ps)

title('原圖')

p=rgb2gray(ps);

subplot(1,2,2)

imshow(p)

title('原灰度圖')

[m,n]=size(p);

gp=zeros(1,256);

for k=0:255

gp(k+1)=length(find(p==k))/(m*n); %計算每級灰度出現的概率,將其存入gp,這裡的find函式尋找

%與0-255相等的個數,然後通過length函式返回乙個數,再除以

%總的畫素點個數,就是第0個灰度資料出現的次數,放入第乙個

%裡面endfigure

subplot(1,2,1);

bar(0:255,gp,'g')

xlabel('灰度值')

ylabel(' 出現概率')

title('原灰度直方圖')

max_index=;

for i=3:length(gp)-2

if((gp(i)>=gp(i+1))&(gp(i)>=gp(i-1)))&((gp(i+1)>=gp(i+2))&(gp(i-1)>=gp(i-2)))

max_index(end+1)=i-1;%陣列的擴充套件,有n個元素,那麼第n+1個用來存放資料i-1(因為是從0開始的,所以-1)

endend

possible=gp(max_index);

[max_value,index]=max(possible);%前者存值,後者放位置

tt=max_index(index)-2;%取出資料

[m,n]=size(p);

r=zeros(m,n);

for i=1:m

for j=1:n

if p(i,j)

r(i,j)=256;

else r(i,j)=0;

endend

endsubplot(1,2,2);

imshow(r);

title('二值圖');

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...

基於EasyPR的車牌識別android實現

easypr4android,基於easypr1.5beta的android實現 更新 新增編譯好的安裝檔案 採用android studio2.3.3大幅簡化ndk開發的配置 特性 1.支援拍照和支援相簿瀏覽識別 2.ndk呼叫opencv 3.從assets讀取並複製檔案 4.採用多執行緒進行識...

基於OpenCV的車牌識別 2 車牌字元識別

3 車牌字元切割 a.閾值濾波,使用cv thresh binary引數通過把白色值變為黑色,黑色值變為白色來實現閾值輸出的反轉,因為需要獲取字元的輪廓,而輪廓的演算法尋找的是白色畫素 b.查詢輪廓 c.驗證輪廓是否為字元,去除那些規格太小的或者寬高比不正確的區域。字元是45 77的寬高比,允許0....