matlab global rbfnet,基于RBF简单的matlab手写识别
GetFeature.m
%將圖像分為25塊,計(jì)算每一塊的空白部分所占比例
function data=GetFeature(I)
[row,col]=find(I==0); %返回?cái)?shù)字的上下左右的邊界
I=I(min(row):max(row),min(col):max(col)); %截取手寫數(shù)字圖像,使其緊包含數(shù)字邊界,不包含多余的空白
imwrite(I,'您手寫的字.bmp','bmp'); %保存截取后的手寫數(shù)字圖像
[row,col]=size(I);
r=fix(row/5); %為分25塊做準(zhǔn)備
c=fix(col/5);
sum=0; %計(jì)算空白塊數(shù)目
k=1;
feature=[];
for i=1:r:5*r %先從行開始計(jì)算
for j=1:c:5*c %保持行不變,先計(jì)算列
for m=i:i+r-1
for n=j:j+c-1
if I(m,n)==0
sum=sum+1; %每一塊空白的像素塊的數(shù)目
end
end
end
data(k)=sum/(r*c); %第k個(gè)特征分量,即第k塊的空白率,k最大為25
sum=0;
k=k+1;
end
end
data=data'; %將當(dāng)前手寫數(shù)字的特征向量由行向量變?yōu)榱邢蛄?/p>
end
rbftest.m
function y = rbfnettest( sample )
load template pattern;
c=0;
for i=1:10
for j=1:210
c=c+1;
p(:,c)=pattern(i).feature(:,j);
end
end
tc(:,1:210)=0;
tc(:,211:420)=1;
tc(:,421:630)=2;
tc(:,631:840)=3;
tc(:,841:1050)=4;
tc(:,1051:1260)=5;
tc(:,1261:1470)=6;
tc(:,1471:1680)=7;
tc(:,1681:1890)=8;
tc(:,1891:2100)=9;
tc=tc/10;
t=tc;
SPREAD=1;
rbfnet=newrbe(p,t,SPREAD);
t=sim(rbfnet,sample);
t=t*10;
y=round(t);
end
test.m
clear
clc
I=imread('sample3.bmp');
A=GetFeature(I);
Y=rbfnettest(A)
相關(guān)數(shù)據(jù)庫與代碼下載地址:http://pan.baidu.com/s/1c0oH7l2
本文同步分享在 博客“風(fēng)翼冰舟”(CSDN)。
如有侵權(quán),請(qǐng)聯(lián)系 support@oschina.cn 刪除。
本文參與“OSC源創(chuàng)計(jì)劃”,歡迎正在閱讀的你也加入,一起分享。
總結(jié)
以上是生活随笔為你收集整理的matlab global rbfnet,基于RBF简单的matlab手写识别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: native react 图片多选_N-
- 下一篇: matlab-simulink-sims