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 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
Python 通过URL打开图片实例详解
Jun 01 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
浅谈python jieba分词模块的基本用法
Nov 09 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 Python
keras中的卷积层&池化层的用法
May 22 Python
python实现mean-shift聚类算法
Jun 10 Python
Django如何与Ajax交互
Apr 29 Python
python3.9之你应该知道的新特性详解
Apr 29 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文件下载类
2006/12/06 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
jquery $.getJSON()跨域请求
2011/12/21 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
TypeScript入门-接口
2017/03/30 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
Python中的exec、eval使用实例
2014/09/23 Python
解密Python中的描述符(descriptor)
2015/06/03 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
python中的随机函数random的用法示例
2018/01/27 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
金山毒霸系列的笔试题
2013/04/13 面试题
应届毕业生应聘自荐信范文
2014/02/26 职场文书
管理建议书范文
2014/05/13 职场文书
教师职业道德事迹材料
2014/08/18 职场文书