我正在处理Python中的图像,需要编写一个可以处理彩色和灰度图像的程序。他们是numpy数组
颜色形状:(512,512,3)
灰度形状:(512,512)
现在我必须遍历每个图像通道,即返回:
For Color: im[:,:,0], im[:,:,1], im[:,:,2]
For Grayscale: im[:,:]
如何在没有if条件的情况下以相同的格式编写它们?我尝试了im [:,:0]用于灰度,但它超出了索引的范围。
答案 0 :(得分:1)
我不确定这是否有用,但numpy
提供了插入new axes的功能:
im_new = im_old[:,:,np.newaxis]
根据我的理解,这使得im_new[i,j,k]
与任何im_old[i,j]
的{{1}}相同。
(另请注意,k
只是np.newaxis
)的别名