【发布时间】:2020-10-03 18:11:12
【问题描述】:
假设我有以下区域坐标数组[x1, y1, x2, y2]。就我而言,这些坐标描述了图像中检测到的人脸区域:
[
[1, 1, 41, 41],
[134, 13, 154, 33]
]
现在,我想获取最大区域或最大区域本身的索引。我知道我可以遍历数组,计算每个条目的面积,然后排序以获得最大的一个。 Python 中的标准循环非常慢,所以我正在寻找一个可以加快处理速度的 NumPy 解决方案(假设该数组中有 1MM 个单独的区域)。
在上面的示例中,我希望获得数组索引 0 或区域本身 [1, 1, 41, 41],因为它是两者中最大的(就面积而言,不是坐标本身最大)。
【问题讨论】:
-
这是简单的数组算法就足够的情况吗?这足以为您的示例中的每个项目计算一个面积为
(a[2]-a[0]) * (a[3]-a[1]),然后找到最大项目的索引。由于我们使用的是numpy,因此不需要迭代。 -
请不要在没有解释的情况下投反对票。很乐意解决您的问题。