基于GRNN广义回归神经网络的车牌字符分割和识别matlab仿真
生活随笔
收集整理的這篇文章主要介紹了
基于GRNN广义回归神经网络的车牌字符分割和识别matlab仿真
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
一、理論基礎
二、核心MATLAB程序
三、MATLAB仿真測試結果
一、理論基礎
? ? ? GRNN通常被用來進行函數逼近。它具有一個徑向基隱含層和一個特殊的線性層。第一層和第二層的神經元數目都與輸入的樣本向量對的數目相等。GRNN結構如圖1所示,整個網絡包括四層神經元:輸入層、模式層、求和層與輸出層。
? ? ? ?輸入層的神經元數目與學習樣本中輸入向量的維數m相等,每個神經元都是一個簡單的分布單元,這些神經元直接將輸入變量傳遞到隱含層中。模式層的神經元數目即為學習樣本的數目n,每個神經元都分別對應一個不同的學習樣本,模式層中第i個神經元的傳遞函數為:
? ? ? ?由此可以看出,當選擇出學習樣本之后,GRNN網絡的結構與權值都是完全確定的,因而訓練GRNN網絡要比訓練BP網絡和RBF網絡便捷得多。?
二、核心MATLAB程序
clc; clear; close all; warning off; addpath 'func\'%神經網絡訓練 net = func_grnn_train();for ii = 1:22word1=imresize(tmps{1},[40 20]); word2=imresize(tmps{2},[40 20]); word3=imresize(tmps{3},[40 20]); word4=imresize(tmps{4},[40 20]); word5=imresize(tmps{5},[40 20]); word6=imresize(tmps{6},[40 20]); word7=imresize(tmps{7},[40 20]);%第1個 words = word1; wordss = func_yuchuli(words); wordsss = sim(net,wordss'); [V,I] = max(wordsss); d = I; y{1} = func_check(d);%第2個 words = word2; wordss = func_yuchuli(words); wordsss = sim(net,wordss'); [V,I] = max(wordsss); d = I; y{2} = func_check(d); %第3個 words = word3; wordss = func_yuchuli(words); wordsss = sim(net,wordss'); [V,I] = max(wordsss); d = I; y{3} = func_check(d); %第4個 words = word4; wordss = func_yuchuli(words); wordsss = sim(net,wordss'); [V,I] = max(wordsss); d = I; y{4} = func_check(d); %第5個 words = word5; wordss = func_yuchuli(words); wordsss = sim(net,wordss'); [V,I] = max(wordsss); d = I; y{5} = func_check(d); %第6個 words = word6; wordss = func_yuchuli(words); wordsss = sim(net,wordss'); [V,I] = max(wordsss); d = I; y{6} = func_check(d); %第7個 words = word7; wordss = func_yuchuli(words); wordsss = sim(net,wordss'); [V,I] = max(wordsss); d = I; y{7} = func_check(d);figure(1); subplot(241);imshow(word1);title(num2str(y{1})); subplot(242);imshow(word2);title(num2str(y{2})); subplot(243);imshow(word3);title(num2str(y{3})); subplot(244);imshow(word4);title(num2str(y{4})); subplot(245);imshow(word5);title(num2str(y{5})); subplot(246);imshow(word6);title(num2str(y{6})); subplot(247);imshow(word7);title(num2str(y{7}));pause(2);end NAME = ['車牌圖片test\',num2str(ii),'.jpg']; I =imread(NAME); figure(1); subplot(121); imshow(I); title('原圖'); I1=rgb2gray(I); subplot(122); imshow(I1); title('灰度圖'); %小波變換車牌定位 Ip = func_position(I,I1,1.2,80); figure(2); subplot(131); imshow(Ip); title('車牌區域'); %通過心態學處理,提取車牌區域 Ip = double(bwareaopen(Ip,100)); %膨脹 se = strel('ball',100,50); Ip2 = imdilate(Ip,se); %確定灰度閾值 level = graythresh(uint8(Ip2)); Ip3 = Ip2; %二值化 [R,C] = size(Ip2); for i = 1:Rfor j = 1:Cif Ip2(i,j)>255*levelIp3(i,j) = 1;elseIp3(i,j) = 0; endend end subplot(132); imshow(Ip3); title('去掉干擾'); Ipos = func_Pai_Position(I,Ip3); subplot(133); imshow(Ipos); title('車牌提取'); pause(0.05);三、MATLAB仿真測試結果
?
?
?
A10-50
總結
以上是生活随笔為你收集整理的基于GRNN广义回归神经网络的车牌字符分割和识别matlab仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 火狐 safari 书签_将Firefo
- 下一篇: 【智能算法】GRNN的数据预测—基于广义