在当前很多应用中,都需要涉及图片处理。例如常见的手写体识别、车牌号码识别、人脸/动物识别等。由于我们通常得到的都是图片,这就需要我们将图片转换成数据。下面我分别针对灰度图图片转换处理。
这里使用的是手写体识别的数据集 mnist ,每张图片为28*28像素,一共42000张,每张图片的label 为图片名字的第一个数字。
#coding:utf-8
import os
from PIL import Image
import numpy as np
def load_data():
#Return a new array of given shape and type, without initializing entries.
data = np.empty((42000,1,28,28),dtype='float32')
label = np.empty((42000,),dtype='uint8')
#os.listdir(filename)返回filename中所有文件的文件名列表
imgs = os.listdir('mnist')
num = len(imgs)
for i in range(num):
#PIL 的 open() 函数用于创建 PIL 图像对象
img = Image.open('mnist/'+imgs[i])
#Convert the input to an array
arr = np.asarray(img,dtype='float32')
data[i,:,:,:] = arr
label[i] = int(imgs[i].split('.')[0])
return data,label
本文介绍了一种将MNIST手写体数据集加载并转换为可用于机器学习模型训练的数据格式的方法。该数据集包含42000张28x28像素的灰度图片,每张图片对应一个手写数字。通过Python的PIL库读取图片,并使用NumPy将其转换为浮点数数组。
6744

被折叠的 条评论
为什么被折叠?



