基于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'; %将当前手写数字的特征向量由行向量变为列向量
end

rbftest.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李宏毅机器学习课程-Transfer Learning

深度学习 -> 强化学习 ->迁移学习(杨强教授报告) 李宏毅机器学习课程-Transfer Learning 迁移学习-吴恩达 freeze 待处理的 理解深层神经网络中的迁移学习及TensorFlow实现 Transfer Learning模式 Similar domain, different task…

matlab实现RBF的相关函数

摘自《matlab神经网络43个案例分析》 (1)newrb() 该函数可以用来设计一个近似径向基网络(approximate RBF)。调用格式为: [net,tr]newrb(P,T,GOAL,SPREAD,MN,DF) 其中P为Q组输入向量组成的R*Q位矩阵,T为Q组目标分类向量组成的S*Q维矩阵。GOAL为均方误…

李宏毅机器学习课程-Structured Learning

Simple structured learning framework for python pystruct-github Slides for explaining structured prediction and PyStruct -github 一、Structured Learning-Unifed Framework 之前的input and output 都是vectors Training阶段就是找一个F来评估&#xff…

MATLAB GPU编程基础

原文地址:http://blog.sina.com.cn/s/blog_863f5cf90102uyrh.html 从Matlab2013版本开始,matlab将可以直接调用gpu进行并行计算,而不再需要安装GPUmat库。这一改动的好处是原有的matlab内置函数都可以直接运用,只要数据格式是gpuA…

matlab之norm函数

简单点说就是用来计算范数的一个函数。 假设A是一个矩阵,那么norm(A)或者norm(A,2)计算的就是A的2范数;同理norm(A,1)计算的就是1范数了. 2范数:计算步骤是先计算A*A‘(这里A’代表转置,也就是原矩阵*(原…

word_cloud

word_cloud word_cloud wordcloud_server

matlab之reshape函数

简单来说,reshape(A,m,n)就是用来把原矩阵的元素,按照列读取排成一行,然后按照指定的m*n矩阵再按列放好。比如原矩阵为 A 1 2 3 4 5 6 7 8 9 10 11 12 我们先给他按列拍成一排(变相说…

matlab之unwrap函数

网上的说法: 要计算一个系统相频特性,就要用到反正切函数,计算机中反正切函数规定,在一、二象限中的角度为0~pi,三四象限的角度为0~-pi。 若一个角度从0变到2pi,但实际得到的结果是…

画图网页http://weavesilk.com/

画图网页 http://weavesilk.com/

matlab之bsxfun函数

<span style"font-size:18px;color:#ff0000;">简单的调用方法&#xff1a;</span> bsxfun(plus&#xff0c;A&#xff0c;B)&#xff0c;其中plus代表的是加法&#xff0c;还可以换成减法minus&#xff0c;乘法times等&#xff0c;可以参考matlab里面的帮…

Python xrange与range的区别

xrange 与 range xrange 用法与 range 完全相同&#xff0c;所不同的是生成的不是一个list对象&#xff0c;而是一个生成器。 要生成很大的数字序列的时候&#xff0c;用xrange会比range性能优很多&#xff0c;因为不需要一上来就开辟一块很大的内存空间。 xrange 和 range 这…

受限玻尔兹曼机准备知识——蒙特卡洛方法

先了解几个基本概率知识&#xff0c;不急着看蒙特卡洛方法的定义&#xff0c;具体的MC方法参考网上各种资料。 两个比较好的学习MC方法的文章&#xff1a;蒙特卡洛方法入门 (结合了实例)和 蒙特卡洛方法 (推荐&#xff0c;非常详细) 更新日志&#xff1a;2016-11-19&#xff…

Google Colab 免费GPU服务器使用教程

Google Colab免费使用GPU服务器教程 Google Colab Free GPU Tutorial Colaboratory 相关查询命令!/opt/bin/nvidia-smi!pip install !apt-get install !pip install -q keras import keras !apt-get install libnvrtc8.0 !pip install mxnet-cu80 import mxnet as mx import te…

受限玻尔兹曼机准备知识——MCMC方法和Gibbs采样

先点明几个名词 MCMC方法&#xff1a;马尔可夫链-蒙特卡洛方法 (千万别叫成梅特罗波利斯蒙特卡罗方法了) Metropolis-Hastings采样&#xff1a;梅特罗波利斯-哈斯廷斯采样 Gibbs采样&#xff1a;吉布斯采样 还是介绍一下学习MCMC和Gibbs采样比较好的一个资料&#xff1a;随机采…

受限玻尔兹曼机——简单证明

花了很久看了一下玻尔兹曼机&#xff0c;感觉水有点深&#xff0c;总之一步一步来嘛~~~~ 先说一下一个非常好的参考资料&#xff1a; 受限玻尔兹曼机&#xff08;RBM&#xff09;学习笔记 &#xff0c;有兴趣的可以再看看这篇文章的参考文献或者博客&#xff0c;写的也非常好&…

受限玻尔兹曼机RBM实现及能量值思考——matlab实现

网址&#xff1a;http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html 这个代码主要是在mnist上做手写数字识别的代码&#xff0c;贴出来的目的主要是想研究一下在迭代过程中能量的变化情况。 1. 标准能量函数 标准的能量函数的表达式为&#xff1a; 那么就将这个…

Cheat_Sheet ---Keras、Matlab、Matplotlib、Numpy、Pandas、Scikit-Learn、SciPy

Cheat_Sheet ---KerasCheat_Sheet ---MatlabCheat_Sheet ---MatplotlibCheat_Sheet ---NumpyCheat_Sheet ---PandasCheat_Sheet ---Scikit-LearnCheat_Sheet ---SciPy参考文献 http://ddl.escience.cn/f/IDkq#path%2F8215264

WPF中DataContext的绑定技巧-粉丝专栏

&#xff08;关注博主后&#xff0c;在“粉丝专栏”&#xff0c;可免费阅读此文&#xff09; 先看效果&#xff1a; 上面的绑定值都是我们自定义的属性&#xff0c;有了以上的提示&#xff0c;那么我们可以轻松绑定字段&#xff0c;再也不用担心错误了。附带源码。 …

matlab实现unix时间戳到标准时间的转换

【注】给定时间精确到小时的情况下的转换 函数&#xff1a; function [ date ] ConvertDate( x ) %将unix时间戳转换为标准时间 % date datestr(1426406400/86400 datenum(1970,1,1)); date datestr((x-3600*248*3600)/86400 70*36519datenum(1900,1,0)); end结果&#…

failed to initialize nvml driver/library version mismatch ubuntu

英伟达驱动版本是384.130显示的NVRM version: NVIDIA UNIX x86_64 Kernel Module是&#xff1a;384.130。 若是旧的版本就会出现如下问题。 这个问题出现的原因是kernel mod 的 Nvidia driver 的版本没有更新&#xff0c;一般情况下&#xff0c;重启机器就能够解决&#xff0c;…