基于svm的手写数字识别程序介绍(matlab)

1、程序界面介绍

该程序GUI界面包括手写板、手写数字可视化(原图)、对图像进行灰度处理(灰度图)、图像二值化处理(二值化)、图像特征可视化(HOG特征(方向梯度直方图))、识别结果可视化。其中包括训练模型、数字识别。

程序GUI界面

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 数字3识别结果 | 数字4识别结果 |

2、程序的使用

2.1 程序的打开

首先在matlab窗口命令行中,输入"guide"命令,在弹出的对话框中,选择NumberRecog.fig文件并打开,得到数字识别程序界面。

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 窗口出入命令行 | fig打开对话框 |

程序界面示意图

单击绿色三角即可运行程序

2.2 训练样本制作

本程序基于支持向量机SVM进行手写数字识别,因此需要事先制作训练样本。本程序提供了利用手写板制作样本的方法。利用手写版,对0、1、2、...、9这10个数字,每个数字制作20个样本数字。具体来说,在手写板上,利用鼠标各写20次数字,并利用"保存图片"按钮,将数字进行保存。如制作样本数字0如下:

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 手写0样本数字 | 0样本数字保存 |

相同数字样本放在同一文件夹下,便于寻找。可以参考如下形式,10个数字分别放在10个文件夹下,并按照一定顺序进行编号,如对样本数字图片,编号为0-1、0-2、0-3、0-4、....。

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 训练样本存放示例 | 文件夹0中的样本数字 |
| | |
| 文件夹5中的样本数字 | 文件夹8中的样本数字 |

制作完样本数字后,需要制作一个存放样本数字图片的txt文件,如traindata.txt。其中,里面主要存放每个样本数字图片的存放路径。如下图所示:

******需要注意的是,下载到自己电脑上后,一定要将traindata.txt中内容,改成图片实际在你电脑上存放的位置,要不然程序报错。********

traindata.txt文本中图片存放位置示意

2.3 训练模型

在制作好训练数据后,便可以训练模型。点击"训练模型"按钮,打开traindata.txt文件,确定后开始训练模型,模型训练结束后,会弹出"模型训练完成!"的提示,如下图所示。

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 打开训练样本文件 | 训练完成提示 |

2.4 识别数字

在手写板上随意写0-9数字中任意数字,单击"载入"按钮,再单击"数字识别"按钮,最后变可准确识别数字。

当再写其他数字时,单击"重置"按钮,会将手写版清空,再使用鼠标写数字,再单击"载入"、"数字识别",即完成数字识别过程。

4、说明

理论上样本制作的越多,训练的模型精度会更高。若自己想制作更多的训练样本数字训练模型,可以使用写字板最左样本。但是制作完后,需要修改以下地方:

(1)traindata.txt中内容

traindata.txt是存放每个训练样本图片的路径,因此,需要根据最终制作样本图片进行修改。具体来说,将你制作多的训练样本图片路径,添加进来即可。

(2)m文件修改

在NumberRecog.fig文件中,选择"训练模型"按钮,右击,在弹出选项中选择"callback"。

对train_label进行修改,修改主要是行数,比如,本人电脑上每个数字样本图片各为20张,因此train_label中0-9中每个数字各为20。

若你增加了训练样本数字,每个数字样本为30,那么你需要将0-9中每个数字各为30,如下形式:

按照上述介绍,根据自己实际情况进行修改即可。

基于matlab的源代码下载链接:https://download.csdn.net/download/qq_32867925/89275750

相关推荐
谙忆10244 小时前
图片放大为什么会糊?从插值到AI超分,超分辨率技术是怎么演进的
人工智能·计算机视觉
2zcode7 小时前
免费开源项目文档:基于MATLAB图像处理的啤酒瓶口缺陷检测系统设计与实现
开发语言·图像处理·matlab
yyywxk7 小时前
ICML 2026 超分辨率(super-resolution)方向上接收论文总结
计算机视觉·icml·超分辨率
hixiong1238 小时前
TensorRT转换工具分享
人工智能·计算机视觉·ai·c#
动物园猫9 小时前
可回收垃圾目标检测数据集:5类别、13,000张图像 | 目标检测
人工智能·目标检测·计算机视觉
gihigo199811 小时前
FastSLAM2.0(精度优于1.0)MATLAB 实现
开发语言·matlab
foundbug99912 小时前
Polar Code 编解码 MATLAB 实现
开发语言·算法·matlab
万亿少女的梦16812 小时前
基于深度学习的动物图像分类系统设计与实现
pytorch·深度学习·计算机视觉·图像分类·convnext
2zcode14 小时前
基于MATLAB图像处理的啤酒瓶口缺陷检测系统设计与实现
开发语言·图像处理·matlab
2zcode1 天前
基于MATLAB图像处理的水果识别与分类系统设计与实现
图像处理·matlab·分类