python计算二维矩形IOU实例

yipeiwu_com6年前Python基础

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

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

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

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

以上这篇python计算二维矩形IOU实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用Django和Python创建Json response的方法

使用jQuery的.post提交,并期望得到多个数据,Python后台要使用json格式。 不指定datatype为json,让jquery自行判断数据类型。(注:跨域名请求数据,则使用...

将python包发布到PyPI和制作whl文件方式

wheel文件 Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容。按照官...

深入探究Python中变量的拷贝和作用域问题

深入探究Python中变量的拷贝和作用域问题

在 python 中赋值语句总是建立对象的引用值,而不是复制对象。因此,python 变量更像是指针,而不是数据存储区域,  这点和大多数 OO 语言类似吧,比如 C++、...

Python 自动化表单提交实例代码

Python 自动化表单提交实例代码

今天以一个表单的自动提交,来进一步学习selenium的用法 练习目标   0)运用selenium启动firefox并载入指定页面(这部分可查看本人文章 http://www.cnbl...

利用python计算时间差(返回天数)

前言 本文主要给大家介绍了关于python计算时间差(返回天数)的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法如下: 将时间戳转换成日期格式: im...