python - 如何在python中计算多边形的IOU?

标签 python computer-vision object-detection opencv

我有两个多边形。 多边形1:[[x1,y1],[x2,y2],[x3,y3],[x4,y4]...[xn,yn]] 多边形2:[[x1,y1],[x2,y2],[x3,y3],[x4,y4]...[xm,ym]] n 和 m 的个数可以相同也可以不同。 如何计算两个多边形的IOU?或者如何计算polygon1和polygon2的重叠面积和面积?所以我可以计算重叠面积/(面积 P1 + 面积 P2)

最佳答案

shapely图书馆有你需要的一切。正如@pink_spikyhairman 评论的那样,有很多关于如何使用这个库来计算多边形 IOU 的问题示例。例如,您有两个多边形,一个正方形和一个三角形:

from shapely.geometry import Polygon

polygon1 = Polygon([(0, 0), (1, 1), (1, 0)])
polygon2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
intersect = polygon1.intersection(polygon2).area
union = polygon1.union(polygon2).area
iou = intersect / union
print(iou)  # iou = 0.5

关于python - 如何在python中计算多边形的IOU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61577406/

相关文章:

python - 如何获取检测到的物体的类别 - tensorflow

python - 如何对坐标进行非规范化?

python - MurmurHash 有纯 python 实现吗?

python - 如何创建一个包含随机数列的数据框,每个列都有不同的范围?

c++ - 在 OpenCV 中,将 2d 图像点转换为 3d 世界单位 vector

algorithm - 改进 OpenCV 的模板匹配算法

python - SQLAlchemy 加入子查询问题

python threading.Event : add event params

python - 如何从文档中删除所有肖像图片

python - 使用 OpenCV cv2.VideoCapture 在 Python 中从 IP 摄像机流式传输视频