在机器学习手写数字识别案例中,需要将手写数字图片转矩阵向量。其实转矩阵,就需要根据图片上像素点来组成一个矩阵,如果把图片看作一个 长*宽 的二维矩阵,那么矩阵中的每个点的像素表示的数字组成一个新的矩阵。
一般图片我们会将他转灰度图,整个图片就由数字和空白组成,这样就好取像素值了。
下面介绍两种办法将手写数字图片转矩阵:
原始图片:
代码一:
import numpy as np
from PIL import Image
img = Image.open('number6.png')
img = img.resize((32,32))
img = img.convert("L")
img_new = img.point(lambda x:0 if x> 170 else 1)
arr = np.array(img_new)
for i in range(arr.shape[0]):
print(arr[i])
运行结果:
这种方式,直接打印的是每一组向量,而不是字符串的形式。
代码二: