用mnist手写字符数据集训练网络并识别照片中的数字
数据预处理
测试集
经过分割的单个数字以保存为png图片,需要重新灰度化。每张图片的尺寸不同,resize尺寸到28*28和mnist图像相同。去除特别小的文字图片比如一个点。
def average_size(image): # 取得平均图片size
x_list = []
y_list = []
x_shape = np.shape(image)[0]
y_shape = np.shape(image)[1]
x_list.append(x_shape)
y_list.append(y_shape)
return x_list, y_list
def resize_writing(image): # 尺寸规范到28*28
x_shape = np.shape(image)[0]
y_shape = np.shape(image)[1]
if x_shape <= x_shape_mean/6 and y_shape <= y_shape_mean/6: # 去除太小的文字区域
pass
else:
print('done')
if x_shape < y_shape:
x0 = int((y_shape - x_shape) / 2)
y0 = 0
x_shape0 = y_shape
y_shape0 = y_shape
if x_shape >= y_shape:
x0 = 0
y0 = int((y_shape - x_shape) / 2)
y_shape0 = x_shape
x_shape0 = x_shape
number_0 = np.zeros([x_shape0, y_shape0], dtype=int)