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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Python正则表达式的使用范例详解
Aug 08 Python
python通过正则查找微博@(at)用户的方法
Mar 13 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
Jun 16 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
python实现学员管理系统
Feb 26 Python
python实现车牌识别的示例代码
Aug 05 Python
重写django的model下的objects模型管理器方式
May 15 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
解决运行出现'dict' object has no attribute 'has_key'问题
Jul 15 Python
区分python中的进程与线程
Aug 13 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 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 ftp文件上传函数(基础版)
2010/06/03 PHP
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
php上传文件常见问题总结
2015/02/03 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
JavaScript多线程的实现方法
2007/05/08 Javascript
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
python读取文本绘制动态速度曲线
2018/06/21 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
Python tkinter模版代码实例
2020/02/05 Python
Python smtp邮件发送模块用法教程
2020/06/15 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
Java程序员常见面试题
2015/07/16 面试题
领导视察欢迎词
2014/01/15 职场文书
员工评语大全
2014/01/19 职场文书
人力资源总监工作说明
2014/03/03 职场文书
导游个人求职信范文
2014/03/23 职场文书
股东合作协议书范本
2014/04/14 职场文书
保护环境倡议书
2014/04/14 职场文书
小学优秀班主任材料
2014/12/17 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
redis 解决库存并发问题实现数量控制
2022/04/08 Redis