需要帮助将两个3通道图像组合成6通道图像Python

时间:2017-04-06 20:04:59

标签: python opencv numpy

我正在尝试将两个不同的RGB图像组合成一个单独的6通道图像(Tiff最好),只使用Python。

我所拥有的是从普通相机拍摄的RGB图像以及另一个基于SfM重建的法线贴图的RGB图像。图像具有相同的尺寸,我只需要将一个图像叠加在另一个图像上,这样我就可以根据组合的通道信息运行图像分类。

我一直在考虑使用openCV,但我已经开始使用文档。我是地质学家,而不是程序员,所以我的数学技能和编程知识充其量只是平庸。

我一直在做一些挖掘,到目前为止我尝试过使用OpenCV为每个图像创建一个数组,然后使用numpy连接生成的矩阵并使用PIL将它们组合成一个图像。麻烦的是图像并排显示两个图像,而不是一个6通道图像。

我认为PIL不能做我需要做的事情,但我不确定如何使用openCV mixChannels函数或如何在Python中创建MAT,因为Mat :: create文档完全在C ++。

RGB Image

Normals Image

我在这个网站上遇到过另一个帖子,但就我所知,他们并没有真正回答:

See here

1 个答案:

答案 0 :(得分:4)

NumPy让你满意。

您的输入可能都是(1200, 900, 3)形状(使用.shape检查),并且您希望(1200, 900, 6)作为输出 - 这要求沿第三轴连接两个数组。因此

np.concatenate((im1, im2), axis=2) # axes are 0-indexed, i.e. 0, 1, 2

将完全按照您的意愿行事。