手写数字识别应用程序
导入模块
import os
import pylab
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from sklearn.svm import SVC
%matplotlib inline
图像转向量
def img2vector(filename):
"""将32*32的二进制图像转换为1*1024向量"""
# 构造一个一行有1024个元素的即 1*1024 的零向量
return_vect = np.zeros((1, 1024))
with open(filename, 'r', encoding='utf-8') as fr:
# 读取文件的每一行的所有元素
for i in range(32):
line_str = fr.readline()
# 把文件每一行的所有元素按照顺序写入构造的 1*1024 的零矩阵
for j in range(32):
return_vect[0, 32 * i + j] = int(line_str[j])
# 返回转换后的 1*1024 向量
return return_vect
训练并测试模型