模式识别课matlab数字识别程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

名称:模式识别

题目:数字‘3’和‘4’的识别

实验目的与要求:

利用已知的数字样本(3和4),提取样本特征,并确定分类准则,在用测试样本对分类确定准则的错误率进行分析。进一步加深对模式识别方法的理解,强化利用计算机实现模式识别。

实验原理:

1.特征提取原理:

利用MATLAN 软件把图片变为一个二维矩阵,然后对该矩阵进行二值化处理。由于“3”的下半部分在横轴上的投影比“4”的下半部分在横轴上的投影宽,所以可以统计‘3’‘4’在横轴上投影的‘1’的个数作为一个特征。又由于‘4’中间纵向比‘3’的中间‘1’的个数多,所以可以统计‘4’和‘3’中间区域‘1’的个数作为另外一个特征,又考虑‘4’的纵向可能会有点偏,所以在统计一的个数的时候,取的范围稍微大点,但不能太大。

2.分类准则原理:

利用最近邻对测试样本进行分类

实验步骤

1.利用MATLAN 软件把前30个图片变为一个二维矩阵,然后对该矩阵进行二值化处理。

2.利用上述矩阵生成特征向量

3.利用MATLAN 软件把后5个图片变为一个二维矩阵,然后对该矩阵进行二值化处理。

4.对测试样本进行分类,用F矩阵表示结果,如果是‘1’表示分类正确,‘0’表示分类错误。

5.对分类错误率分析

实验原始程序:

f=zeros(5,2)

w=zeros(35,2)

q=zeros(35,2)

for i=1:35

filename_1='D:\MATLAB6p5\toolbox\images\imdemos\3\'

filename_2='.bmp'

a= num2str (i)

b=strcat(filename_1,a)

c=strcat(b,filename_2)

d=imread(c)

e=im2bw(d)

n=0

for u=1:20

m=0

for t=32:36

if(e(t,u)==0)

m=m+1

end

end

if(m<5)

n=n+1

end

end

w(i,1)=n

n=0

for u=1:36

for t=10:18

n=n+e(u,t)

end

end

w(i,2)=n

filename_1='D:\MATLAB6p5\toolbox\images\imdemos\4\' filename_2='.bmp'

a= num2str(i)

b=strcat(filename_1,a)

c=strcat(b,filename_2)

d=imread(c)

e=im2bw(d)

n=0

for u=1:20

m=0

for t=32:36

if(e(t,u)==0)

m=m+1

end

end

if(m<5)

n=n+1

end

end

q(i,1)=n

n=0

for u=1:36

for t=10:18

n=n+e(u,t)

end

end

q(i,2)=n

end

z=zeros(5,2)

x=zeros(5,2)

for i=1:5

filename_1='D:\MATLAB6p5\toolbox\images\imdemos\3\' filename_2='.bmp'

a= num2str (i+35)

b=strcat(filename_1,a)

c=strcat(b,filename_2)

d=imread(c)

e=im2bw(d)

n=0

for u=1:20

m=0

for t=32:36

if(e(t,u)==0)

m=m+1

end

end

if(m<5)

n=n+1

end

end

z(i,1)=n

n=0

for u=1:36

for t=10:18

n=n+e(u,t)

end

end

z(i,2)=n

filename_1='D:\MATLAB6p5\toolbox\images\imdemos\4\' filename_2='.bmp'

a= num2str (i)

b=strcat(filename_1,a)

c=strcat(b,filename_2)

d=imread(c)

e=im2bw(d)

n=0

for u=1:20

m=0

for t=32:36

if(e(t,u)==0)

m=m+1

end

end

if(m<5)

n=n+1

end

end

x(i,1)=n

n=0

for u=1:36

for t=10:18

n=n+e(u,t)

end

end

x(i,2)=n

end

d1=10000*ones(5,2)

d2=10000*ones(5,2)

for i=1:5

for j=1:35

a=(w(j,1)-z(i,1))*(w(j,1)-z(i,1))+(w(j,2)-z(i,2))*(w(j,2)-z(i,2)) b=(q(j,1)-z(i,1))*(q(j,1)-z(i,1))+(q(j,2)-z(i,2))*(q(j,2)-z(i,2)) if(a

d1(i,1)=a

end

if(b

d1(i,2)=b

end

end

if(d1(i,1)

f(i,1)=1

end

for j=1:35

c=(w(j,1)-x(i,1))*(w(j,1)-x(i,1))+(w(j,2)-x(i,2))*(w(j,2)-x(i,2)) d=(q(j,1)-x(i,1))*(q(j,1)-x(i,1))+(q(j,2)-x(i,2))*(q(j,2)-x(i,2)) if(d2(i,1)>c)

d2(i,1)=c

end

if(d2(i,2)>d)

d2(i,2)=d

end

end

if(d2(i,1)>d2(i,2))

f(i,2)=1

End

End

实验结果:

相关文档
最新文档