图片是又RGB三种颜色构成的,我们可以将它看作是一个三维数组,这个三维数组就是一个立方体,三维数组的第一维就是图片的宽度
import numpy as np
a = np.random.randint(0, 10, size=[3,3,3])
print(a)
print('....................')
a1 = np.sum(a, axis=2)
print(a1)
print('....................')
a2 = np.sum(a, axis=1)
print(a2)
print('....................')
a3 = np.sum(a, axis=0)
print(a3)
结果如下
[[[8 3 2]
[5 6 7]
[6 8 8]]
[[5 8 3]
[0 5 8]
[2 7 6]]
[[8 4 5]
[3 6 7]
[6 4 6]]]
....................
[[13 18 22]
[16 13 15]
[17 16 16]]
....................
[[19 17 17]
[ 7 20 17]
[17 14 18]]
....................
[[21 15 10]
[ 8 17 22]
[14 19 20]]
回到最初的问题axis=(0,1)是什么意思,就是说先做axis=1,再做axis=0,注意的是做axis=0是在axis=1变化之后的数组上面做的,还有一点axis=(0,1)与axis=(1,0)是等价的,对于三维数组也可以axis=(0,1,2)这样最后就变成一个数值了
如题:
咱们取彩色图片的rgb的平均值,则需要
lRGB = np.mean(img, axis=(0,1))
meanR = lRGB[2]
meanG = lRGB[1]
meanB = lRGB[0]