将灰度图像转换为3通道图像

发布于 2021-01-29 18:22:17

我想将具有形状的灰度图像转换为具有形状(height,width)的3通道图像(height,width,nchannels)。使用可以完成工作for- loop,但是必须有一个整洁的方法。这是程序中的一段代码,有人可以提示。请指教。

 30         if img.shape == (height,width): # if img is grayscale, expand
 31             print "convert 1-channel image to ", nchannels, " image."
 32             new_img = np.zeros((height,width,nchannels))
 33             for ch in range(nchannels):
 34                 for xx in range(height):
 35                     for yy in range(width):
 36                         new_img[xx,yy,ch] = img[xx,yy]
 37             img = new_img
关注者
0
被浏览
140
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用np.stack它来更简洁地完成此操作:

    img = np.array([[1, 2], [3, 4]])
    stacked_img = np.stack((img,)*3, axis=-1)
    print(stacked_img)
     # array([[[1, 1, 1],
     #         [2, 2, 2]],
     #        [[3, 3, 3],
     #         [4, 4, 4]]])
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看