基于Python实现的手写数字识别

Aveclesoleil

发布日期: 2019-04-19 10:14:37 浏览量: 3779
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com

一、准备

  • 测试准备:pycharm,windows自带画图功能,python3.5

  • 安装python3.5

  • 将解压的文件夹拖入pycharm中,设置解释器路径为:文件解压路径\ML_num\venv\Scripts\python.exe

  • 若要调用文件,只要点入文件并点击右上角绿色三角或鼠标右键点 run 相应文件

二、手写数字识别

调用UI.py 得如图界面:

测试可用windows自带画图功能,刷子选用喷枪,粗细第3个,尽量喷清楚,图片后缀为.png图片大小为400*400像素(其他大小也行只要不小于32*32)如下:

点击选择文件找到测试文件,选择是否使用备份(默认使用)再点击开始识别, 可选择自动识别或手动识别,手动识别截图时鼠标左键按住拖动即可(数字周围尽量有些许空,若识别错误,很大原因是由于截的图左右空格太小、太大),再输入真实值,结果为:文件名为输入的真实值_最大数字.txt。以下结果为文件名为:6_3.txt 如图:

三、摄像头

务必使用笔记本电脑,数字尽量写得大一些,尽量在光线明亮处拍摄,点击摄像头,如图:

按q键退出,其他键拍摄,之后点击开始识别与第二部分相同。

四、介绍

  • 使用的非标准库:opencv,numpy,pillow

  • 机器学习技术:KNN邻近

  • 引用:《机器学习实战》源码并对其中部分内容修改,增加部分操作;部分代码参考cnblog与CSDN

文件介绍

  • data_set:备份文件夹

  • images:图片文件

  • testDigits:测试数据

  • testDigits(测试):正确率测试数据

  • trainingDigits:训练数据

  • vedio_cut.py:摄像头拍摄

  • hand_number.py:截取图片并修改大小为32*32, 转为灰度图

  • zero_one.py:将灰度图转为01矩阵并存入testDigits文件夹内

  • kNN.py:k值邻近算法识别数字并统计结果, 可以选择使用备份数据训练识别或重新开始

  • get_next_num.py:得到指定数据文件数量

  • check:测试正确率

  • UI.py:使用tkinter库构造界面

  • 新增im:样例图片

上传的附件 cloud_download 基于Python实现的手写数字识别.7z ( 2.48mb, 228次下载 )
error_outline 下载需要12点积分

发送私信

思考时,要像一位智者;但讲话时,要像一位普通人

9
文章数
7
评论数
最近文章
eject