1 Star 4 Fork 0

Dizzy / HandWriting_Recognition

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
bayesClassifierBulid.m 1.49 KB
一键复制 编辑 原始数据 按行查看 历史
Dizzy 提交于 2020-05-16 12:33 . 图像处理课程设计
function label=bayesClassifierBulid(img)
%加载已经计算好的训练样本的特征变量
load featureData.mat;
test_feature=singleNum_feature_extraction(img);%获得测试图片的特征数据
%计算先验概率
prior=[];%存储先验概率的矩阵
sum=0;
for i=1:size(featureDataStruct,2)
sum=sum+size(featureDataStruct(i).feature,1);
end
for i=1:size(featureDataStruct,2)
prior(i)=size(featureDataStruct(i).feature,1)/sum;
end
%计算类条件概率
likelihood = [];%类条件概率
pij=[];%i类的样本第j个特征为1的概率
for i=1:size(featureDataStruct,2)%数字类别个数
for j=1:100%每个数字图片提取出来的特征数
sum=0;
for k=1:size(featureDataStruct(i).feature,1)%每个类别下训练样本的个数
i_feature=featureDataStruct(i).feature(k);
sum=sum+i_feature{1}(1,j);
end
pij(i,j)=(sum+1)/(size(featureDataStruct(i).feature,1)+2);%计算概率估计值即Pj(ωi),注意拉普拉斯平滑处理
end
end
for i=1:size(featureDataStruct,2)%数字类别个数
multi=1;
for j=1:100%每个数字图片提取出来的特征数
if(test_feature(j)==1)
multi=multi*pij(i,j);
else
multi=multi*(1-pij(i,j));
end
end
likelihood(i)=multi;
end
%计算后验概率
p_class=[];%后验概率
sum=0;
for i=1:size(featureDataStruct,2)%数字类别个数
sum=sum+prior(i)*likelihood(i);
end
for i=1:size(featureDataStruct,2)%数字类别个数
p_class(i)=prior(i)*likelihood(i)/sum;
end
[maxval,maxpos]=max(p_class);
label=maxpos-1;
Matlab
1
https://gitee.com/flyzzie/HandWriting_Recognation.git
git@gitee.com:flyzzie/HandWriting_Recognation.git
flyzzie
HandWriting_Recognation
HandWriting_Recognition
master

搜索帮助