我正在尝试将两个不同的RGB图像组合成一个单独的6通道图像(Tiff最好),只使用Python。
我所拥有的是从普通相机拍摄的RGB图像以及另一个基于SfM重建的法线贴图的RGB图像。图像具有相同的尺寸,我只需要将一个图像叠加在另一个图像上,这样我就可以根据组合的通道信息运行图像分类。
我一直在考虑使用openCV,但我已经开始使用文档。我是地质学家,而不是程序员,所以我的数学技能和编程知识充其量只是平庸。
我一直在做一些挖掘,到目前为止我尝试过使用OpenCV为每个图像创建一个数组,然后使用numpy连接生成的矩阵并使用PIL将它们组合成一个图像。麻烦的是图像并排显示两个图像,而不是一个6通道图像。
我认为PIL不能做我需要做的事情,但我不确定如何使用openCV mixChannels函数或如何在Python中创建MAT,因为Mat :: create文档完全在C ++。
我在这个网站上遇到过另一个帖子,但就我所知,他们并没有真正回答:
答案 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
将完全按照您的意愿行事。