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

tpu*_*GIS 6 python opencv numpy

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

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

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

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

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

RGB 图像

法线图像

我在这个网站上遇到了另一个线程,但据我所知,它们也没有得到真正的回答:

看这里

nne*_*neo 6

NumPy 已满足您的需求。

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

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

会做你想做的。