如何从不同颜色空间提取指定通道合并生成维度为(224,224,4)的4通道图像
你之前把数组加入列表再转numpy的操作,是默认沿第0维堆叠,所以得到通道在前的(4, 224, 224)格式,想要通道在后的(224,224,4)格式,用下面两种方法都可以实现:
方法1:直接用np.dstack堆叠通道(最推荐)
直接用numpy的深度堆叠方法,按你需要的通道顺序传入四个二维数组即可,输出自动符合要求:
import numpy as np four_channel_img = np.dstack([h, s, cb, cr]) # 验证shape print(four_channel_img.shape) # 输出 (224, 224, 4)
方法2:调整已生成的通道在前数组的轴顺序
如果你已经得到了shape为(4, 224, 224)的数组,可以用transpose方法调整轴的顺序:
# 假设你之前生成的通道在前数组为tmp_img tmp_img = np.array([h, s, cb, cr]) four_channel_img = tmp_img.transpose(1, 2, 0) # 验证shape print(four_channel_img.shape) # 输出 (224, 224, 4)
内容的提问来源于stack exchange,提问作者Mohiuddin
相关产品推荐
相关产品推荐

