我正在使用numpy构建像素数组。一个800x600的图像是一个三维的uint8数组,大小为800x600x3。我还有一个类似的数组,其中有一个固定的模式(一个棋盘格,可以在这里看到)。我还有另一个800x600的掩码值数组。当掩码为零时,我想将模式像素复制到图像像素中。当掩码不为零时,我想保持图像像素不变。
>>> image.shape
(800, 600, 3)
>>> chex.shape
(800, 600, 3)
>>> mask.shape
(800, 600)
这个感觉应该可以工作:
image[mask == 0,...] = chex
但是会报错"ValueError: array is not broadcastable to correct shape"。
我该使用什么方法将 chex 像素复制到图像像素中,其中 mask 为零?
mask.shape (8, 6), chk.shape (8, 6, 3) 和 img.shape (8, 6, 3)
似乎不符合np.where
的要求。 - Gathide