手写数字识别(慕课MOOC人工智能之模式识别)

问题:手写数字识别

数据集

数据集链接请点击我

代码

matlab 复制代码
%mat2vector.m
function [data_]= mat2vector(data,num)
    [row,col,~]= size(data);
    data_=zeros(num,row*col);
    for page =1:num
        for rows =1:row
            for cols=1:col
                data_(page,((rows-1)*col+cols))= im2double(data(rows,cols,page));
            end
        end
    end
end
matlab 复制代码
image = cell(1,10);
for i= 0:9
    filename = sprintf('E:/fig/model/%d.bmp',i);
    image{1,i+1} = mat2vector(imresize(imread(filename),[28,28]),1);
end

correct_num=0;
for index = 0:9
    distance =zeros(1,10);
    fname=sprintf('E:/fig/test/%d.1.bmp',index);
    sample =mat2vector(imresize(imread(fname),[28,28]),1);
    for j= 1:10
        distance(j)=pdist2(sample,image{1,j},'euclidean');
    end
    [m,p]= min(distance);
    if p-1==index
        correct_num=correct_num+1;
    end
    fprintf('数字%d到模板的最小距离为:%d,匹配到的类别为:%d\n',[index,m,p-1]);
end
fprintf('共测试10个样本,正确匹配个数为%d个\n',correct_num);

执行结果

补充(数据集文件夹的注意事项)



有问题联系xylwork@yeah.net

相关推荐
Evand J24 分钟前
【MATLAB程序,一维非线性EKF与RTS】MATLAB,用于一维的位移与速度滤波和RTS平滑/高精度定位,带滤波前后的误差对比
开发语言·matlab·卡尔曼滤波·rts平滑·正向滤波
刘大猫.26 分钟前
XNMS项目-拓扑图展示
java·人工智能·算法·拓扑·拓扑图·节点树·xnms
TTGGGFF5 小时前
控制系统建模仿真(四):线性控制系统的数学模型
人工智能·算法
UXbot6 小时前
UI设计工具推荐合集
前端·人工智能·ui
kicikng6 小时前
智能体来了(西南总部)实战指南:AI调度官与AI Agent指挥官的Prompt核心逻辑
人工智能·prompt·多智能体系统
抓个马尾女孩6 小时前
为什么self-attention除以根号dk而不是其他值
人工智能·深度学习·机器学习·transformer
叫我辉哥e16 小时前
新手进阶Python:办公看板集成ERP跨系统同步+自动备份+AI异常复盘
开发语言·人工智能·python
Loo国昌6 小时前
【LangChain1.0】第五阶段:RAG高级篇(高级检索与优化)
人工智能·后端·语言模型·架构
伊克罗德信息科技6 小时前
技术分享 | 用Dify搭建个人AI知识助手
人工智能
TOPGUS6 小时前
谷歌发布三大AI购物新功能:从对话式搜索到AI代你下单
大数据·人工智能·搜索引擎·chatgpt·谷歌·seo·数字营销