用坐标列表索引二维数组的Python方法

时间:2019-04-23 00:48:31

标签: python numpy scikit-image

我的坐标为numpy.ndarray类,尺寸为(200,2)。基本上是regionprops的输出。

我想索引暗的ndarray的图像矩阵(也是img.shape = (1000,1000))。 我希望能够做到

for prop in region:
    img[prop.coords] = 0

但是,发生的是,它没有将坐标视为行,列对。而是将每个数字作为行号并将整个行设置为0。

我该如何解决?

我尝试重塑数组,但是似乎也不起作用。我唯一能想到的就是将这些索引转换为矩阵,该矩阵的尺寸与图像尺寸相同,并且这些坐标为1,所有其他坐标值为0。然后,使用该矩阵进行索引。但是,这似乎没有比使用for循环强行强制执行更有效。

2 个答案:

答案 0 :(得分:2)

您必须以元组形式提供坐标才能调用基本索引:

for prop in region:
    img[tuple(prop.coords.T)] = 0

答案 1 :(得分:1)

for prop in region:
    (min_row, min_col, max_row, max_col) = prop['bboxtuple']
    img[min_row:max_row, min_col:max_col] = 0