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字典几种方法总结(推荐)
Sep 11 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
Python实现删除时保留特定文件夹和文件的示例
Apr 27 Python
Python requests库用法实例详解
Aug 14 Python
python实现键盘控制鼠标移动
Nov 27 Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 Python
Pytorch实现神经网络的分类方式
Jan 08 Python
520使用Python实现“我爱你”表白
May 20 Python
keras的三种模型实现与区别说明
Jul 03 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几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
PyQt 线程类 QThread使用详解
2017/07/16 Python
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
python使用turtle绘制分形树
2018/06/22 Python
python用插值法绘制平滑曲线
2021/02/19 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
python图形用户接口实例详解
2019/12/16 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
Python面向对象实现方法总结
2020/08/12 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
幼儿教师培训感言
2014/03/08 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书