Numpy 有没有一种聪明的方法来简化逐像素值更改代码?

Numpy 有没有一种聪明的方法来简化逐像素值更改代码?,numpy,cv2,Numpy,Cv2,有没有什么奇特的方法可以将我的脏代码转换成带有cv2或numpy函数的简单代码?我认为这有助于替换循环(与您的循环非常类似,不言自明): # masking masked = mask.copy() for py in range(0,h): for px in range(0,w): if masked[py][px][0] != 0: masked[py][px] = im[py][px] masked = cv2.cvtColor(mask

有没有什么奇特的方法可以将我的脏代码转换成带有cv2或numpy函数的简单代码?

我认为这有助于替换循环(与您的循环非常类似,不言自明):

# masking 
masked = mask.copy()
for py in range(0,h):
    for px in range(0,w):
        if masked[py][px][0] != 0:
            masked[py][px] = im[py][px]
masked = cv2.cvtColor(masked, cv2.COLOR_RGB2BGR)
indices = np.where(masked[:,:,0] != 0)
masked[indices]=im[indices]