【发布时间】:2018-03-29 11:55:13
【问题描述】:
我想将形状为(height,width) 的灰度图像转换为形状为(height,width,nchannels) 的3 通道图像。这项工作是通过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
【问题讨论】:
-
这里的问题是什么?如果您只想更改尺寸,这是一个简单的重塑操作。如果你想重新创建颜色,没有一些模型/假设是不可能的。您的灰度图像没有颜色信息,您所能做的就是猜测颜色(这可能很简单也很糟糕,也可能更复杂但还不错;没有限制)。
-
@sascha 我想复制3次灰度图像,所以它与彩色图像形状一致,然后我的程序可以将图像视为相同。但我想有一个没有for循环的更好的实现