Python_提取图片像素值

使用PIL.Iamgenumpy模块

打开图片

from PIL import Image
image = Image.open("test.png")

导入数组

import numpy
array = numpy.array(image)
print(array)
'''
[[[  0   0   0]
  [ 84 150 206]
  [255 255 255]
  ...
  [255 255 255]
  [255 255 255]
  [255 255 255]]

 [[255 255 255]
  [ 84 150 206]
  [255 255 255]
  ...
  [255 255 255]
  [255 255 255]
  [255 255 255]]

 [[255 255 255]
  [ 84 150 206]
  [ 84 150 206]
  ...
  [255 255 255]
  [255 255 255]
  [255 255 255]]

 ...

 [[255 255 255]
  [255 255 255]
  [255 255 255]
  ...
  [255 255 255]
  [ 84 150 206]
  [255 255 255]]

 [[255 255 255]
  [255 255 255]
  [255 255 255]
  ...
  [255 255 255]
  [ 84 150 206]
  [ 84 150 206]]

 [[255 255 255]
  [255 255 255]
  [255 255 255]
  ...
  [255 255 255]
  [255 255 255]
  [  0   0   0]]]
'''

这个三位数组的意义是图片以行与列分布像素值,像素值内RGB值

也就是说

array.shape == (162, 136, 3)
array.shape[0] == "图片的像素单位的总行数"
array.shape[1] == "图片的像素单位的总列数"
array.shape[2] == 3 # RGB是三个值

判断某一像素点的像素值

(array[x,y,:] == [R,G,B]).any()
# 或者是使用a.all()
(array[x,y,] == [R,G,B]).all()
# 如果需要比较的像素值是相同的
(array[x,y,:] == num).all()
# 均返回False或者True