Skimage:如何将两张灰度图像合并为2通道图像
问题原因
你遇到的问题核心是单通道灰度图在numpy中默认是二维数组(shape为(高度, 宽度)),没有显式的通道维度,拼接时的轴参数设置容易出错。
解决方法1:使用np.stack直接新增通道拼接
np.stack会沿着新的轴拼接数组,不需要手动扩充维度,是最简便的写法:
concatenateGray = np.stack([grayImage1, grayImage2], axis=-1) print(concatenateGray.shape) # 输出 (540, 720, 2)
解决方法2:手动扩充维度后用concatenate拼接
如果你习惯用np.concatenate,需要先给每个灰度图添加最后一维的通道轴,再沿通道轴拼接:
# 给单通道灰度图增加维度,变为 (540, 720, 1) gray1 = np.expand_dims(grayImage1, axis=-1) gray2 = np.expand_dims(grayImage2, axis=-1) concatenateGray = np.concatenate([gray1, gray2], axis=-1) print(concatenateGray.shape) # 输出 (540, 720, 2)
补充说明
你之前调用np.concatenate时出现540x1440的输出,是因为错误指定了拼接轴为宽度轴(axis=1),沿宽度方向拼接了两张图。而np.dstack对于两个二维数组输入,本身应该输出(540,720,2)的结果,你可以重新打印输出数组的shape确认,大概率是之前的维度查看有误。
内容的提问来源于stack exchange,提问作者coderide
相关产品推荐
相关产品推荐

