我有一个 numpy 数组格式的图像,我编写代码时假定 rgb 图像作为输入,但我发现输入由黑白图像组成。
对于应该是 RGB 的图像,即 (256,256,3) 维图像,我将输入作为灰度 (256,256) 阵列图像,我想将其转换为 (256,256,3)
这是我在 numpy 数组中的内容:
[[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
...
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]]
(256, 256)
这就是我想要的:(上面数组中每个值的相同元素数组 3 次)
[[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
...
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]]
是否有任何 numpy 函数可以执行此操作? 如果没有,有没有办法在 python 数组中执行此操作并将其转换为 numpy?
最佳答案
您可以使用 numpy.dstack
沿第三轴堆叠二维数组:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.dstack([a, a, a])
结果:
[[[1 1 1]
[2 2 2]]
[[3 3 3]
[4 4 4]]]
或使用 opencv merge
合并 3 个颜色 channel 的功能。
关于python - 如何将 1d 数组转换为 3d 数组(将灰度图像转换为 rgb 格式)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57103190/