如何将RGB图像以numpy数组的形式重塑为它的通道?

2w3kk1z5  于 2023-05-13  发布在  其他
关注(0)|答案(1)|浏览(137)

我有一个形状为(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]
baubqpgj

baubqpgj1#

您可以转置数组并将其分配给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]

相关问题