使用2D蒙版将3D numpy阵列写入更大的3D阵列的切片中

时间:2016-04-09 01:04:05

标签: python numpy pypy

我有两个3D numpy数组,每个数组代表一个图像(x,y,rgb)。我想将较小的图像写入较大的图像,除了任何品红色像素(255,0,255)。我知道如何生成表示所有品红色像素的2D蒙版 - 如何在3D阵列操作中使用此2D蒙版?

1 个答案:

答案 0 :(得分:2)

这是一个例子。它并不准确(所有值都是一两个),但给出了这个想法。希望这适用于您的情况:

image1 = np.ones((5,5,16))
image2 = 2 * np.ones((3,3,16))
mask = np.array([[0, 1, 1], [0, 0, 1], [1, 0, 0]])
x, y = np.where(mask)
image1[1:4,1:4,:][x,y,:] = image2[x,y,:]

1:4,1:4是较大图像中子图像的位置。)