我正在Python中处理图像,需要编写一个既能处理彩色图像又能处理灰度图像的程序。它们是numpy阵列
颜色形状:(512512,3)
灰度形状:(512512)
现在我必须循环浏览每个图像通道,即返回:
For Color: im[:,:,0], im[:,:,1], im[:,:,2]
For Grayscale: im[:,:]
如何在没有if条件的情况下以相同的格式编写它们?我尝试了im[:,:,0]的灰度,但它超出了索引的范围。
我不确定这是否有帮助,但numpy
提供了插入新轴的能力:
im_new = im_old[:,:,np.newaxis]
据我所知,这使得im_new[i,j,k]
与任何k
的im_old[i,j]
相同。
(还要注意,np.newaxis
只是None
的别名)