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
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐