我有3个具有相同尺寸的2D numpy浮点数组( R,G,B )。我想将它合并到一个2d数组中,导致新的2d数组中的每个元素都是3个浮点数的数组。以下是我的初始代码:
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)
答案 0 :(得分:2)
np.concatenate((a, b,c), axis=see what you want, probably 1)
或者 你也可以使用hstack ......(它们都是同一个......)
Doing, rgb_transform = np.concatenate(R,G,B), throws an error. TypeError: only integer scalar arrays can be converted to a scalar index,
但它不应该扔,因为我已经在括号中传递它们
要解决这个问题,可能
做这个
np.concatenate([a, b, c], axis=see what you want, probably 1)
参考docs
编辑
所提出的问题与上述情况略有不同,所以答案是正确的
np.stack((r,g,b),2)
最终输出为(1000,775,3)
...