使用PIL.Iamge
和numpy
模块
打开图片
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