python实现的Iou与Giou代码


Posted in Python onJanuary 18, 2020

最近看了网上很多博主写的iou实现方法,但Giou的代码似乎比较少,于是便自己写了一个,新手上路,如有错误请指正,话不多说,上代码:

def Iou(rec1,rec2):
  x1,x2,y1,y2 = rec1 #分别是第一个矩形左右上下的坐标
  x3,x4,y3,y4 = rec2 #分别是第二个矩形左右上下的坐标
  area_1 = (x2-x1)*(y1-y2)
  area_2 = (x4-x3)*(y3-y4)
  sum_area = area_1 + area_2
  w1 = x2 - x1#第一个矩形的宽
  w2 = x4 - x3#第二个矩形的宽
  h1 = y1 - y2
  h2 = y3 - y4
  W = min(x1,x2,x3,x4)+w1+w2-max(x1,x2,x3,x4)#交叉部分的宽
  H = min(y1,y2,y3,y4)+h1+h2-max(y1,y2,y3,y4)#交叉部分的高
  Area = W*H#交叉的面积
  Iou = Area/(sum_area-Area)
  return Iou

def Giou(rec1,rec2):
  x1,x2,y1,y2 = rec1 #分别是第一个矩形左右上下的坐标
  x3,x4,y3,y4 = rec2
  iou = Iou(rec1,rec2)
  area_C = (max(x1,x2,x3,x4)-min(x1,x2,x3,x4))*(max(y1,y2,y3,y4)-min(y1,y2,y3,y4))
  area_1 = (x2-x1)*(y1-y2)
  area_2 = (x4-x3)*(y3-y4)
  sum_area = area_1 + area_2
  w1 = x2 - x1#第一个矩形的宽
  w2 = x4 - x3#第二个矩形的宽
  h1 = y1 - y2
  h2 = y3 - y4
  W = min(x1,x2,x3,x4)+w1+w2-max(x1,x2,x3,x4)#交叉部分的宽
  H = min(y1,y2,y3,y4)+h1+h2-max(y1,y2,y3,y4)#交叉部分的高
  Area = W*H#交叉的面积
  add_area = sum_area - Area #两矩形并集的面积
  end_area = (area_C - add_area)/area_C #(c/(AUB))/c的面积
  giou = iou - end_area
  return giou


rec1 = (27,47,130,90)
rec2 = (30,68,150,110)
iou = Iou(rec1,rec2)
giou = Giou(rec1,rec2)
print("Iou = {},Giou = {}".format(iou,giou))

以上这篇python实现的Iou与Giou代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
Python的组合模式与责任链模式编程示例
Feb 02 Python
python自动化测试之如何解析excel文件
Jun 27 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
解决pandas展示数据输出时列名不能对齐的问题
Nov 18 Python
Python如何把多个PDF文件合并代码实例
Feb 13 Python
python_array[0][0]与array[0,0]的区别详解
Feb 18 Python
Django实现列表页商品数据返回教程
Apr 03 Python
python中spy++的使用超详细教程
Jan 29 Python
python 如何做一个识别率百分百的OCR
May 29 Python
详解Python中*args和**kwargs的使用
Apr 07 Python
Python 简单计算要求形状面积的实例
Jan 18 #Python
python实现用类读取文件数据并计算矩形面积
Jan 18 #Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 #Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 #Python
利用setuptools打包python程序的方法步骤
Jan 18 #Python
python计算二维矩形IOU实例
Jan 18 #Python
解决python replace函数替换无效问题
Jan 18 #Python
You might like
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
VBScript版代码高亮
2006/06/26 Javascript
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
React-native桥接Android原生开发详解
2018/01/17 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
Python实现选择排序
2017/06/04 Python
Python中的四种交换数值的方法解析
2019/11/18 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
结构和类有什么异同
2012/07/16 面试题
公司周年庆典策划方案
2014/05/17 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书