目录
一、理论基础
二、核心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; endendendsubplot(132);imshow(Ip3);title('去掉干扰');Ipos = func_Pai_Position(I,Ip3);subplot(133);imshow(Ipos);title('车牌提取');pause(0.05);
三、MATLAB仿真测试结果
A10-50