python如何计算二维矩形IOU-创新互联

这篇文章主要介绍python如何计算二维矩形IOU,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

成都创新互联于2013年创立,先为托克托等服务建站,托克托等地企业,进行企业商务咨询服务。为托克托企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

计算交并比:交的面积除以并的面积。

要求矩形框的长和宽应该平行于图片框。不然不能用这样的公式计算。

原理,从一维上来理解:两条红线的距离之和减去黑色线之间的距离就是相交的距离。两条红线之和很容易算,两条黑线之间的距离就是最小的起点到到大的末点,最小的起点好算,大的末点就是两点加上各自长度之后的大值。这就算出了一维的情况,二维的情况一样,计算二次而已。

python如何计算二维矩形IOU

def iou(rect1,rect2):
 '''
 计算两个矩形的交并比
 :param rect1:第一个矩形框。表示为x,y,w,h,其中x,y表示矩形右上角的坐标
 :param rect2:第二个矩形框。
 :return:返回交并比,也就是交集比并集
 '''
 x1,y1,w1,h2=rect1
 x2,y2,w2,h3=rect2
 
 inter_w=(w1+w2)-(max(x1+w1,x2+w2)-min(x1,x2))
 inter_h=(h2+h3)-(max(y1+h2,y2+h3)-min(y1,y2))
 
 if inter_h<=0 or inter_w<=0:#代表相交区域面积为0
  return 0
 #往下进行应该inter 和 union都是正值
 inter=inter_w * inter_h
 
 union=w1*h2+w2*h3-inter
 return inter/union

以上是“python如何计算二维矩形IOU”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


当前标题:python如何计算二维矩形IOU-创新互联
本文URL:http://myzitong.com/article/cdjdph.html