我有 3 个尺寸相同的二维 numpy float 组(R、G、B)。我想将它合并到一个二维数组中,使新二维数组中的每个元素成为一个包含 3 个 float 的数组。下面是我的初始代码:
image = cv2.imread('hurricane katrina 1.jpg', cv2.IMREAD_GRAYSCALE)
a = 255
b = 2 * (np.pi/255)
c = np.pi / 5
R = a * np.absolute(np.sin(b * image))
G = a * np.absolute(np.sin(b * image + c))
B = a * np.absolute(np.sin(b * image + 2 * c))
如何在不遍历数组的情况下在 Python 中执行此操作?谢谢。
更新:
我想合并 3 个数组。举例来说
R[0][0] = 3
G[0][0] = 4
B[0][0] = 6
那么合并数组就是
RGB[0][0] = (3,4,6)
这对数组中的所有元素都是正确的。
所以最终的输出形状将是(1000,775,3)
最佳答案
np.concatenate((a, b,c), axis=看你想要什么,大概1)
或者 您还可以使用 hstack...(它们是一回事...)
执行 rgb_transform = np.concatenate(R,G,B) 会抛出错误。类型错误:只能将整数标量数组转换为标量索引,
但它不应该抛出,因为我已经在括号中传递了它们
要解决这个问题,可能
做这个
np.concatenate([a, b, c], axis=看你想要什么,大概1)
引用docs
编辑
问的和上面有点不同,所以正确的答案是
np.stack((r,g,b),2)
因为最终输出是 (1000,775,3)
...
关于Python - 将多个相同维度的二维数组合并为一个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49766704/