首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从右到左、从上到下排列目标检测包围框列表?

如何从右到左、从上到下排列目标检测包围框列表?
EN

Stack Overflow用户
提问于 2022-03-14 17:22:47
回答 1查看 1.3K关注 0票数 0

我试图对对象检测后从右到左、从上到下获得的包围框列表进行排序。下面是包围框的位置

代码语言:javascript
复制
bbox = [(637, 207, 681, 207),  (679, 99, 726, 99), (747, 497, 798, 497), (829, 124, 892, 124), (1002, 131, 1059, 131),  (1010, 656, 1071, 656)] 

我根据xmin值对这个列表进行排序,如下所示

代码语言:javascript
复制
sorted(bbox,key=lambda x:x[2][0])

最后,我得到了包围框的安排,如下图所示

序列不整齐,序列应该从左到右、从上到下开始,如下图所示

如有任何建议或指引可达此目的,我们将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-03-14 17:35:07

你想要按左上角最近的点排序吗?如果是这样的话,您需要计算出从那个拐角处的距离,然后再排序:

代码语言:javascript
复制
import numpy as np

bbox = [(637, 207, 681, 207),  (679, 99, 726, 99), (747, 497, 798, 497), (829, 124, 892, 124), (1002, 131, 1059, 131),  (1010, 656, 1071, 656)]
arr = np.array(bbox)
r = (arr[:, 0]**2 + arr[:, 1] **2)**0.5
print(np.argsort(r))

这将打印出各点的顺序。我假设每个点的前2个坐标是x和y,原点在左上角。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71471798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档