python将图片转矩阵

Posted luffy5459

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python将图片转矩阵相关的知识,希望对你有一定的参考价值。

    在机器学习手写数字识别案例中,需要将手写数字图片转矩阵向量。其实转矩阵,就需要根据图片上像素点来组成一个矩阵,如果把图片看作一个 长*宽 的二维矩阵,那么矩阵中的每个点的像素表示的数字组成一个新的矩阵。

    一般图片我们会将他转灰度图,整个图片就由数字和空白组成,这样就好取像素值了。

    下面介绍两种办法将手写数字图片转矩阵:

     原始图片:

    代码一:

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])

   运行结果:

 

    这种方式,直接打印的是每一组向量,而不是字符串的形式。 

    代码二: 

from PIL import Image
img = Image.open('number6.png')
img = img.resize((32,32))
img = img.convert("L")


width,height = img.size
for i in range(height):
    for j in range(width):
        color = img.getpixel((j,i))
        if(color>170):
            print('0',end=' ')
        else:
            print('1',end=' ')
    print()

    运行结果:

 

      以上两种方式其实就是两个方法img.point()和img.getpixcel()的区别,他们参数不同,最终的结果都是将图片像素点转为数字,然后存储为新的矩阵。

以上是关于python将图片转矩阵的主要内容,如果未能解决你的问题,请参考以下文章

python中怎样将列表转成矩阵

python 矩阵转置transpose

Python代码阅读(第41篇):矩阵转置

稠密矩阵怎么转成稀疏矩阵 python

矩阵转置python的实现

python练习题4.28矩阵转置