我有一个四边形阵列,每个项目包括图像中正方形的四个坐标。 例如:
[
array([
[[599, 1]],
[[173, 109]],
[[202, 252]],
[[445, 314]]
]),
array([
[[1, 1]],
[[1, 126]],
[[57, 104]],
[[48, 19]]
])
]
我希望程序找到数组中最高的方块。
我是Python的新手,所以我很乐意得到一个明确的答案:)
答案 0 :(得分:1)
正如评论中所指出的,四边形的“质心”有多种定义。我假设vertex centroid - 其坐标显然是4个角坐标的算术平均值,因此很容易计算。
quadrilaterals = [array([[599, 1]],
[[173, 109]],
[[202, 252]],
[[445, 314]]),
array([[1, 1]],
[[1, 126]],
[[57, 104]],
[[48, 19]])]
def centroid_y(polygon):
return polygon.mean(0)[1] # assuming numpy arrays
然后使用质心作为关键字获得最大值。
print max(quadrilaterals, key=centroid_y)