我有一个包含一些像素索引的数组和一个二进制图像。我想根据相应图像点处的图像值过滤第一个数组。 目前我正在执行以下操作:
mask = np.random.rand(512, 512)
mask[mask < 0.5] = 0
mask[mask >= 0.5] = 1
x = np.random.randint(0, mask.shape[0], 10)
y = np.random.randint(0, mask.shape[1], 10)
img_pts = np.vstack([x, y]).T
occ = np.zeros(len(img_pts))
for i, img_pt in enumerate(img_pts):
if mask[img_pt[1], img_pt[0]]:
occ[i] = 1
这绝不是最好的方法。有更快的方法吗?