%将图像分为25块,计算每一块的空白部分所占比例
function data=GetFeature(I)
[row,col]=find(I==0); %返回数字的上下左右的边界
I=I(min(row):max(row),min(col):max(col)); %截取手写数字图像,使其紧包含数字边界,不包含多余的空白
imwrite(I,'您手写的字.bmp','bmp'); %保存截取后的手写数字图像
[row,col]=size(I);
r=fix(row/5); %为分25块做准备
c=fix(col/5);
sum=0; %计算空白块数目
k=1;
feature=[];
for i=1:r:5*r %先从行开始计算
for j=1:c:5*c %保持行不变,先计算列
for m=i:i+r-1
for n=j:j+c-1
if I(m,n)==0
sum=sum+1; %每一块空白的像素块的数目
end
end
end
data(k)=sum/(r*c); %第k个特征分量,即第k块的空白率,k最大为25
sum=0;
k=k+1;
end
end
data=data'; %将当前手写数字的特征向量由行向量变为列向量
end