我正在尝试使用 Python 将两个不同的 RGB 图像组合成一个 6 channel 图像(Tiff 是最好的)。
我有一张从普通相机拍摄的 RGB 图像,以及另一张 RGB 图像,它是基于 SfM 重建的法线贴图。这些图像具有相同的尺寸,我只需要将一张图像叠加在另一张图像上,这样我就可以根据组合的 channel 信息运行图像分类。
我一直在研究为此使用 openCV,但我对文档很感兴趣。我是一名地质学家,而不是程序员,所以我的数学技能和编程知识充其量只是平庸。
我一直在做一些挖掘,到目前为止我尝试过的是使用 OpenCV 为每个图像创建一个数组,然后使用 numpy 连接生成的矩阵并使用 PIL 将它们组合成一个图像。问题是图像并排显示两个图像或在另一个图像之上,而不是显示为 6 channel 图像。
我不认为 PIL 可以做我需要它做的事情,但我不确定如何使用 openCV mixChannels 函数或什至如何在 Python 中创建一个 MAT,因为 Mat::create 文档完全在C++。
我在这个网站上遇到了另一个话题,但据我所知,他们也没有得到真正的回答:
最佳答案
NumPy 为您服务。
您的输入可能都是形状 (1200, 900, 3)
(检查 .shape
),并且您想要 (1200, 900, 6)
作为输出——这要求沿第三轴连接两个数组。因此
np.concatenate((im1, im2), axis=2) # axes are 0-indexed, i.e. 0, 1, 2
将完全按照您的意愿行事。
关于python - 需要帮助将两个 3 channel 图像组合成 6 channel 图像 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43264816/