基于学习手写汉字特征的简易汉字识别程序-MATLAB(三)

前面两篇介绍了特征提取,贝叶斯分类等问题,这一篇讲解怎么测试我们的程序对不对。
代码如下:

function bayesBinaryTest(imp)
%利用贝叶斯分类器对手写图片识别
load templet;         %加载汉字特征
%A = imp;             %得到待识别图片
A=imread('C:\Users\Administrator\Desktop\BayesBinaryHandwritingRecognition_BC_20190220-master\贝叶斯手写汉字识别\样本集\昆1.bmp');
figure(1),subplot(121),imshow(A),title(['待识别的汉字:']);
B=zeros(1,100);%创建1100列的特征向量  其实与多少与谁是行和列没关系,也可以1001[row col] = size(A);  %得到待测样本的行列
cellRow = row/10;     %将其降维   得到缩小100倍的特征图片
cellCol = col/10;
%disp(row);disp(col);%读取的行列数正好是图片的像素数即12090%像素已经是二值化的灰度图,所以读取的像素值不是0(黑色)就是255(白色)
%A中读取和存储的是像素值,是一个12090列的矩阵    最后将每一个12*9个方格整合成一个方格,最后的得到一个10*10的栅格
count = 0;            %1/100个格子中为0的像素点个数
currentCell = 1;      %当前计算为第11/100格子部分
for currentRow = 0:9    
    for currentCol = 0:9    
       for i = 1:cellRow     %计算每1/100部分中为0的数量
           for j = 1:cellCol
               if(A(currentRow*cellRow+i,currentCol*cellCol+j)==0)
                   count=count+1;
               end
           end
        end
        ratio = count/(cellRow*cellCol);   %计算1/100部分中黑色像素的占比    将每12*9个方格中的黑色像素平均到这12*9个中去,
                                           %像素会降低,所以要设定阈值,将达到一定数量黑色像素的12*9的方
                                           %格置成10*10的中的一个黑色像素点 ,如下一步
        B(1,currentCell) = ratio;          %将每个占比统计在B特征向量中
        currentCell = currentCell+1;       %新的1/100部分开始计算
        count = 0;                         %像素点计数置0
     end
end
%disp(B')%B'打印出来是一列一百行的向量
class = bayesBinary(B');                   %将该特征利用贝叶斯分类器分类,返回类的个数
subplot(122),imshow(['C:\Users\Administrator\Desktop\BayesBinaryHandwritingRecognition_BC_20190220-master\贝叶斯手写汉字识别\样本集\',num2str(class),'.jpg']),title(['该汉字被识别为:']);
disp(['该汉字被识别为:',pattern(class).name]);

想要识别文字,就要先把文字信息导入到程序中,老样子,还是用imread将信息读取,下面的设置B矩阵,读取文件的大小,像素的点数等等。程序里面我又增加了一些注释,更加清楚,我就不多言了。对了,应用时记得把imread里面的路径改成自己的。文字库下载的话,我资源里面有。
一起学习,共同进步。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值