使用numpy编写此方法的更好/更短的方法是什么? 两种img的形状和类型都相同。 没用太多
def cut_whole(img_to_cut, img_to_use):
#we assume unit8 dtype
assert img_to_cut.shape==img_to_use.shape
#iterate all,assume shape is (:,:,4)
(x,y,c)=img_to_cut.shape
for i in range(x):
for j in range(y):
if(img_to_use[i,j,3]>0):
img_to_cut[i,j,:]=0
return img_to_cut
答案 0 :(得分:4)
这应该做
img_to_cut[img_to_use[:, :, 3:4] > 0] = 0
请注意,选择最后一个通道的方式是保留第三个长度为1的轴。从而使生成的布尔掩码可以广播到另一个数组。