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文件和目录操作函数小结
Jul 11 Python
使用python编写脚本获取手机当前应用apk的信息
Jul 21 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
Python 判断奇数偶数的方法
Dec 20 Python
利用python计算windows全盘文件md5值的脚本
Jul 27 Python
python 并发编程 多路复用IO模型详解
Aug 20 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
python selenium操作cookie的实现
Mar 18 Python
Python-jenkins 获取job构建信息方式
May 12 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
Jun 04 Python
利用scikitlearn画ROC曲线实例
Jul 02 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语法(3)
2006/10/09 PHP
PHP中Session的概念
2006/10/09 PHP
PHP eval函数使用介绍
2013/12/08 PHP
php获取字段名示例分享
2014/03/03 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
python socket 超时设置 errno 10054
2014/07/01 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
《老山界》教学反思
2014/04/08 职场文书
运动会班级口号
2014/06/09 职场文书
爱护公共设施标语
2014/06/24 职场文书
幼儿园保育员责任书
2014/07/22 职场文书
授权委托书
2014/07/31 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书