如何检测点是否位于2D numpy数组中的非矩形区域?

时间:2011-10-12 17:18:57

标签: python numpy

我有一个2D数组。让我们假设它有一些非矩形的连通区域。请考虑以下示例

 array([[1, 1, 2, 2],\
        [0, 1, 0, 1],\
        [3, 0, 1, 4],\
        [0, 3, 1, 1]])

在上面的数组中,所有的都是连接的。我知道所有这些存储的坐标都可以说是2d numpy数组或元素列表(x,y)。

现在我想查询该区域是否有任意点。这一点也可以是一个浮点数。

在浮点坐标的情况下,值将舍入到最接近的整数像素值。

非常感谢

1 个答案:

答案 0 :(得分:2)

areas = array([[1, 1, 2, 2],\
        [0, 1, 0, 1],\
        [3, 0, 1, 4],\
        [0, 3, 1, 1]])

def is_in_area(x,y, area_num):
    return areas[round(x), round(y)] == area_num

这是你想要的吗?

当然,您可能需要在那里检查一些边界。