【发布时间】:2016-04-09 01:04:04
【问题描述】:
我有两个 3D numpy 数组,每个数组代表一个图像 (x, y, rgb)。我想将较小的图像写入较大的图像,除了任何洋红色像素(255、0、255)。我知道如何生成代表所有洋红色像素的 2D 蒙版——如何在 3D 数组操作中使用此 2D 蒙版?
【问题讨论】:
我有两个 3D numpy 数组,每个数组代表一个图像 (x, y, rgb)。我想将较小的图像写入较大的图像,除了任何洋红色像素(255、0、255)。我知道如何生成代表所有洋红色像素的 2D 蒙版——如何在 3D 数组操作中使用此 2D 蒙版?
【问题讨论】:
这是一个例子。它并不完全准确(所有值都是一两个),但给出了这个想法。希望这适用于您的情况:
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是子图在大图中的位置。)
【讨论】: