没有合适的资源?快使用搜索试试~ 我知道了~
Python实现识别手写数字 Python图片读入与处理
13 下载量 81 浏览量
2020-09-20
20:19:51
上传
评论
收藏 145KB PDF 举报
温馨提示


试读
5页
主要为大家详细介绍了Python实现识别手写数字,Python图片的读入与处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
资源推荐
资源详情
资源评论
















Python实现识别手写数字实现识别手写数字 Python图片读入与处理图片读入与处理
主要为大家详细介绍了Python实现识别手写数字,Python图片的读入与处理,具有一定的参考价值,感兴趣的
小伙伴们可以参考一下
写在前面写在前面
在上一篇文章Python徒手实现手写数字识别—大纲中,我们已经讲过了我们想要写的全部思路,所以我们不再说全部的思
路。
我这一次将图片的读入与处理的代码写了一下,和大纲写的过程一样,这一段代码分为以下几个部分:
读入图片;
将图片读取为灰度值矩阵;
图片背景去噪;
切割图片,得到手写数字的最小矩阵;
拉伸/压缩图片,得到标准大小为100x100大小矩阵;
将图片拉为1x10000大小向量,存入训练矩阵中。
所以下面将会对这几个函数进行详解。
代码分析代码分析
基础内容基础内容
首先我们现在最前面定义基础变量
import os
from skimage import io
import numpy as np
##Essential vavriable 基础变量
#Standard size 标准大小
N = 100
#Gray threshold 灰度阈值
color = 100/255
其中标准大小指的是我们在最后经过切割、拉伸后得到的图片的尺寸为NxN。灰度阈值指的是在某个点上的灰度超过阈值后则
变为1.
接下来是这图像处理的一部分的主函数
filenames = os.listdir(r"./num/")
pic = GetTrainPicture(filenames)
其中filenames得到在num目录下所有文件的名称组成的列表。pic则是通过函数GetTrainPicture得到所有训练图像向量的矩
阵。这一篇文章主要就是围绕这个函数进行讲解。
GetTrainPicture函数函数
GetTrainPicture函数内容如下
#Read and save train picture 读取训练图片并保存
def GetTrainPicture(files):
Picture = np.zeros([len(files), N**2+1])
#loop all pictures 循环所有图片文件
for i, item in enumerate(files):
#Read the picture and turn RGB to grey 读取这个图片并转为灰度值
img = io.imread('./num/'+item, as_grey = True)
#Clear the noise 清除噪音
img[img>color] = 1
#Cut the picture and get the picture of handwritten number
#将图片进行切割,得到有手写数字的的图像
img = CutPicture(img)
#Stretch the picture and get the standard size 100x100
#将图片进行拉伸,得到标准大小100x100
img = StretchPicture(img).reshape(N**2)
#Save the picture to the matrix 将图片存入矩阵
Picture[i, 0:N**2] = img
#Save picture's name to the matrix 将图片的名字存入矩阵
Picture[i, N**2] = float(item[0])
return Picture
可以看出这个函数的信息量非常大,基本上今天做的所有步骤我都把封装到一个个函数里面了,所以这里我们可以看到图片处
资源评论


weixin_38732307
- 粉丝: 12
- 资源: 929
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
