【问题标题】:how to detect if a point lies in a non-rectangular region in a 2D numpy array?如何检测一个点是否位于二维 numpy 数组中的非矩形区域?
【发布时间】:2011-10-12 17:18:56
【问题描述】:

我有一个二维数组。让我们假设它有一些非矩形的连接区域。考虑下面的例子

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

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

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

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

非常感谢

【问题讨论】:

  • 所以你有一个坐标并且想知道它是否在坐标列表中?对于成员资格测试,我会改用一个集合。

标签: python numpy


【解决方案1】:
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

这就是你想要的吗?

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

【讨论】:

  • 很酷的人,这正是我打算做的......我只是想不同。解决方案非常简单。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 2021-04-21
相关资源
最近更新 更多