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

问题描述 投票:0回答:1

我有一个

(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]
python numpy image-processing rgb
1个回答
0
投票

可以转置数组赋值给

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]
© www.soinside.com 2019 - 2024. All rights reserved.