矢量化批量图像像素查找numpy数组

时间:2017-01-02 11:38:13

标签: python numpy vectorization

假设我有一个(B, H, W, C)形式的输入numpy数组,并且网格包含(B, W)形式的x值和(B, H)形式的y值。

我的目标是使用x和y值来获取图像数组的C值。我可以在B = 1时执行此操作,即我的图片的格式为(H, W, C),而x和y的格式为(H\W, ),但不知道如何将其展开为包含在单个numpy数组中的一批图像。

我可以利用某种重塑吗?

示例

假设我有2张大小为(400, 400, 3)的猫图像。然后是input_img.shape = (2, 400, 400, 3)

我有一个列表x.shape = (2, 400)y.shape = (2, 400),并希望索引到input_img,以便为每个(x_i, y_i)获得一个数组z_i.shape = (C, )总计{{} 1}}。

我正在尝试向量化

z.shape = (400, C)

1 个答案:

答案 0 :(得分:2)

这是一种使用advanced-indexing -

的方法
input_img[np.arange(batch_size)[:,None], x, y]