）进行手工提取，由于提取以后的图像大小可能不一致，为了便于特征提取，可以对各个图形进行归一化处理（例如：归一化为10×20大小）。

1、软件的调试结果（包括调试出的内容和实验的波形、数据、程序出现的现象或界面等）

2、结果分析（程序结果与实验要求之间的差别和原因分析）

TRAINBPX: 0/5000 epochs,   lr = 0.1,      SSE = 68.1032.

TRAINBPX: 50/5000 epochs,  lr = 1.14674,  SSE = 10.093.

TRAINBPX: 100/5000 epochs, lr = 0.321983, SSE = 0.821155.

TRAINBPX: 150/5000 epochs, lr = 3.69231,  SSE = 0.314939.

TRAINBPX: 200/5000 epochs, lr = 42.3412,  SSE = 0.0345176.

TRAINBPX: 225/5000 epochs, lr = 143.382,  SSE = 0.00973975.

1：车牌号提取

% license plate recognition - car plate location based on color model

% modified by KouLiangzhi, Oct 10th,2007

[y,x,z]=size(I);

myI=double(I);

%%%%%%%%%%% 统计分析 %%%%%%%%%%%%%%%

%%%%%%%% Y 方向 %%%%%%%%%%

Blue_y=zeros(y,1);

for i=1:y

for j=1:x

if((myI(i,j,1)<=121)&&myI(i,j,1)>=110&&((myI(i,j,2)<=155)&&(myI(i,j,2)>=141))&&((myI(i,j,3)<=240)&&(myI(i,j,3)>=210)))

% 蓝色RGB的灰度范围

Blue_y(i,1)= Blue_y(i,1)+1;     % 蓝色象素点统计

end

end

end

[temp MaxY]=max(Blue_y);        % Y方向车牌区域确定

PY1=MaxY;

while ((Blue_y(PY1,1)>=5)&&(PY1>1))

PY1=PY1-1;

end

PY2=MaxY;

while ((Blue_y(PY2,1)>=5)&&(PY2<y))

PY2=PY2+1;

end

IY=I(PY1:PY2,:,:);

%%%%%%%% X 方向 %%%%%%%%%%

Blue_x=zeros(1,x);             % 进一步确定X方向的车牌区域

for j=1:x

for i=PY1:PY2

if((myI(i,j,1)<=121)&&myI(i,j,1)>=110&&((myI(i,j,2)<=155)&&(myI(i,j,2)>=141))&&((myI(i,j,3)<=240)&&(myI(i,j,3)>=210)))

Blue_x(1,j)= Blue_x(1,j)+1;

end

end

end

PX1=1;

while ((Blue_x(1,PX1)<3)&&(PX1<x))

PX1=PX1+1;

end

PX2=x;

while ((Blue_x(1,PX2)<3)&&(PX2>PX1))

PX2=PX2-1;

end

PX1=PX1+17;

PX2=PX2-1;

PY1=PY1+5;

PY2=PY2-2; % 对车牌区域的修正

Plate=I(PY1:PY2,PX1:PX2,:);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure,imshow(Plate);

m=PX2-PX1;

n=PY2-PY1;

S=ones(n,m);

for j=1:m

for i=1:n

if((Plate(i,j,1)<=121)&&Plate(i,j,1)>=110&&((Plate(i,j,2)<=155)&&(Plate(i,j,2)>=141))&&((Plate(i,j,3)<=240)&&(Plate(i,j,3)>=210)))

S(i,j)=0;

end

end

end

2：神经网络训练

%【步骤一、样本输入】

nntwarn off;

A=[0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1]';

B=[1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0]';

C=[0 1 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0]';

D=[1 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0]';

E=[1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1]';

F=[1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0]';

zer=[1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1]';

one=[0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0]';

two=[1 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1]';

thr=[1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1]';

fou=[1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0]';

fiv=[1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1]';

six=[1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1]';

sev=[1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1]';

eig=[1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1]';

nin=[1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1]';

% 则对训练样本的矩阵初始化如下：

alphabet=[A,B,C,D,E,F,zer,one,two,thr,fou,fiv,six,sev,eig,nin];

p=alphabet;

targets=eye(16,16);

t=targets;

%------------样本的输出值，即输出目标矢量，希望在每一种模式输入时，在输出的位置上输出为1，其他的位置应该为0。若共有模式为16种

%------------每种模式的样本训练为1个，则输出矢量可以简单表示为： targets＝eye(16,16)

%----------------确定网络的输入、隐层和输出层

[r,q]=size(p);   %输入

[s2,q]=size(t);  %输出

s1=13;           %隐层神经元的数目，可以根据实际需要选择，一般其数目不能超过训练样本的个数。

%-----------------确定网络训练的初值

[w1,b1]=nwlog(s1,r);

[w2,b2]=rands(s2,s1);

%  【步骤二、设置网络参数并训练】

%----------------确定网络训练的参数

disp_freq=50;    %网络训练的显示频率

max_epoch=5000;  %最大训练次数

err_goal=0.01;   %训练的误差

lr=0.1;         %学习率大小

lr_inc=1.05;     %增量

lr_dec=0.5;      %减量

momentum=0.75;   %动量因子

err_ratio=1.05;  %误差率

%-------------训练开始

tp=[disp_freq max_epoch err_goal lr lr_inc lr_dec momentum err_ratio]';

[w1,b1,w2,b2,epochs,TR]=trainbpx(w1,b1,'logsig',w2,b2,'logsig',p,t,tp);

save digit.mat w1 b1 w2 b2;    %--------存储权值，以方便测试

%【步骤三、测试】

%---------------测试，输入的测试样本为p