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 23 Python
python定时器(Timer)用法简单实例
Jun 04 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
Apr 26 Python
Python处理中文标点符号大集合
May 14 Python
python字符串循环左移
Mar 08 Python
Django CBV与FBV原理及实例详解
Aug 12 Python
python制作朋友圈九宫格图片
Nov 03 Python
pytorch动态网络以及权重共享实例
Jan 06 Python
Python sqlite3查询操作过程解析
Feb 20 Python
python 使用三引号时容易犯的小错误
Oct 21 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 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压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
PHP对象相关知识总结
2017/04/09 PHP
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
JavaScript分秒倒计时器实现方法
2015/02/02 Javascript
ECMAScript5(ES5)中bind方法使用小结
2015/05/07 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
2020/02/28 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
Python帮你识破双11的套路
2019/11/11 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
Python PyQt5整理介绍
2020/04/01 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
期末考试动员演讲稿
2014/01/10 职场文书
迅雷Cued工作心得体会
2014/01/27 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
工程质量月活动方案
2014/02/19 职场文书
经典洗发水广告词
2014/03/13 职场文书
开工典礼策划方案
2014/05/23 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
红楼梦读书笔记
2015/06/25 职场文书
运动会致辞稿
2015/07/29 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书