我有一个
(x, y, 3)
形状的图像的 RGB 数组。
我如何将它分成单独的 RGB 通道?
例如,如果我有数组(形状(2, 2, 3)
):
[0 1 2] [3 4 5]
[6 7 8] [9 10 11]
我如何把它变成数组:
r = [0, 3, 6, 9]
g = [1, 4, 7, 10]
b = [2, 5 ,8, 11]
我试着做:
array.reshape(3, x, y)
r = array[0]
g = array[1]
b = array[2]
但是它按照它们之前的相同顺序而不是我想要的顺序放置值。这会将我在上一个示例中使用的数组转换为数组:
r = [0, 1, 2, 3]
g = [4, 5, 6, 7]
b = [8, 9, 10, 11]
可以转置数组赋值给
r, g, b
:
import numpy as np
data = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
r, g, b = np.transpose(data)
print(r)
print(g)
print(b)
输出:
[0 3 6 9]
[ 1 4 7 10]
[ 2 5 8 11]