基于RBF简单的matlab手写识别
生活随笔
收集整理的這篇文章主要介紹了
基于RBF简单的matlab手写识别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
GetFeature.m
%將圖像分為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-1for n=j:j+c-1if I(m,n)==0sum=sum+1; %每一塊空白的像素塊的數目endendenddata(k)=sum/(r*c); %第k個特征分量,即第k塊的空白率,k最大為25sum=0;k=k+1;end end data=data'; %將當前手寫數字的特征向量由行向量變為列向量 endrbftest.m function y = rbfnettest( sample )load template pattern; c=0; for i=1:10for j=1:210c=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)
相關數據庫與代碼下載地址:http://pan.baidu.com/s/1c0oH7l2
總結
以上是生活随笔為你收集整理的基于RBF简单的matlab手写识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端首选微软雅黑字体设定
- 下一篇: Mac 电脑如何安装mac os 和wi