我想将两个灰度图像 [256,256,1]-[256,256,1] 转换为一个2通道图像 [256,256,2] ..
我该怎么做?如何将两张图片合而为一?
答案 0 :(得分:0)
最基本的原则是“ matplotlib / opencv的映像实际上是numpy ndarray”,因此您可以使用numpy支持的多种方法。
示例:
import numpy as np
# Create grayscale image A (The shape as you describe)
greyA = np.random.randint(0, high=256, size=(256, 256, 1))
# Create grayscale image B (The shape as you describe)
greyB = np.random.randint(0, high=256, size=(256, 256, 1))
# Confirm the shape of the grayscale image A
print(greyA.shape) # (256, 256, 1)
# Confirm the shape of the grayscale image B
print(greyB.shape) # (256, 256, 1)
# Merged image
merge_image = np.concatenate((greyA, greyB), axis=2)
# Confirm the shape of the Merged image
print(merge_image.shape) # (256, 256, 2)
在评论中回答您的问题
阅读imshow() 如果图像是8位无符号的,则按原样显示。 如果图像是16位无符号或32位整数,则将像素除以256。即,值范围[0,255 * 256]映射到[0,255]。 如果图像是32位或64位浮点,则像素值将乘以255。即,值范围[0,1]映射为[0,255]。
因此,不支持直接输出色彩空间为2的图像。您可以使用平均值或加权平均值来融合两个图像的像素阵列。