KNN对手写体数字图片分类并预测

本文采用Python实现KNN算法对手写体数字图片进行分类并预测结果
参考文章:https://blog.csdn.net/asialee_bird/article/details/81051281
https://blog.csdn.net/zhili8866/article/details/53026269
https://2723364262.iteye.com/blog/2311663

一.文件格式

在这里插入图片描述
在这里插入图片描述

二.思路分析

1.首先将所有图片转化为灰度图,因为转为单通道后第一可以减少计算量,第二python中部分图像处理函数只支持单通道图片输入。
2.原始数据集0-9放在了9个文件夹中,并且命名无序,所以第二步我将所有图片按上图格式重命名并放入一个文件夹中。注意:图像批量重命名的时候要保证数字位数相同。
3.将图像分为训练集和测试集,我的一共400张图片,350张训练,50张测试,分别放入不同的文件夹中。
4.将图像转为数组,代码测试文件内容,判断是否预测成功
注:批量转换灰度图,批量重命名文件,批量移动文件详细代码参考我的这篇博客:图像处理(批量重命名,批量转为灰度图,批量移动,批量转为数组)

三.代码实现

"""
批量将图像转为一维数组存储后,运用knn进行手写数字图像分类识别
"""
import os
import numpy as np
from PIL import Image   # 导入Image模块
from os import listdir
from sklearn.neighbors import KNeighborsClassifier as KNN
# from pylab import *     # 导入savetxt模块


# 以下代码可以读取文件夹下所有文件
# def getAllImages(folder):
#     assert os.path.exists(folder)
#     assert os.path.isdir(folder)
#     imageList = os.listdir(folder)
#     imageList = [os.path.abspath(item) for item in imageList if os.path.isfile(os.path.join(folder, item))]
#     return imageList

# print getAllImages(r"D:\\test")

def get_imlist(path):   # 此函数读取特定文件夹下的bmp格式图像

    return [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.bmp')]


c1 = get_imlist("C:\\Users\\Tony.Hsu\\Desktop\\writingTest\\trainingSetGray")
print(c1)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TonyHsuM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值