这是一份大一的 C 语言大作业,利用 KNN 算法实现手写字符识别,同时也提供了 Python 的版本。
基于 KNN 算法实现手写字符识别
数据集包括了字母和数字
先尝试用 Python 实现,然后尝试用 C 语言复现
-
将
数据集.zip
解压,将Img
文件夹放在代码的同级目录里。 -
选取一张手写的要预测的图片,放到 test 文件夹里。
-
更改
bin.py
或bin.ipynb
的倒数第二行和倒数第三行,将文件路径改为 test 里自己要预测的图片的图片文件名,例如我的图片名叫做9.png
。# 导入判断图片并转化 file_in = "test\\9.png" # 自定义上传图片路径 file_out_int = "test\\9.txt" # 自定义保存 txt 文件路径 handle_char(file_in, width, height, file_out_int)
-
运行
bin.py
或bin.ipynb
,将图片二值化。 -
运行
matrix.py
或matrix.ipynb
或matrix.c
,预测手写数字。gcc -o matrix matrix.c -lgdi32 -lcomdlg32 -lshlwapi
-
bin.py
数据预处理 -
matrix.py
KNN 算法实现 -
data
数据集 -
test
里面存放需要识别的图片- 暂时还没有测试集数据。可以考虑在这里装置测试集,找出最佳的 K 值。
-
Python 实现
-
数据预处理
-
KNN 算法实现
-
测试集实现
-
手写字符识别
-
-
C 语言复现
-
数据预处理
-
KNN 算法实现
-
测试集实现
-
手写字符识别
-