使用python将图像转换为数字矩阵

god*_*dot 0 python arrays numpy python-imaging-library

我有一张图片"felix.png"(280x280).

我正在将此图像转换为数字矩阵:

from PIL import Image
from numpy import array




img = Image.open('felix.png')
arr = array(img)
Run Code Online (Sandbox Code Playgroud)

这个数组的形状是(280,280,3),我想知道为什么每个像素用3维数组表示?

例如arr[0][0][255,255,255]......

Han*_*rén 5

因为它是彩色图像.第三个维度是颜色.从而

r = arr[:,:,0]
g = arr[:,:,1]
b = arr[:,:,2]
Run Code Online (Sandbox Code Playgroud)

如果PIL将图像打开为RGB.

这意味着点(x,y)处的红色像素将是[255,0,0],并且白色像素[255,255,255].