IoU计算

输入:vector<float>p1;//y1min,x1min,y1max,x1max;vector<float>p2;//y2min,x2min,y2max,x2max;输出:floatIoU代码:floatcomputeIoU(vector<float>p1,vector<float>p2){…

大家好,又见面了,我是你们的朋友全栈君。

输入:

vector<float> p1;  //y1min, x1min, y1max, x1max;
vector<float> p2;  //y2min, x2min, y2max, x2max;

输出:

float IoU

代码:

float computeIoU(vector<float> p1, vector<float> p2)
{ 

//如果存在一个轴上,某个框的最小坐标大于另外一个框的最大坐标,则两框无重合。
if(p2[3]-p1[1]<0)||(p1[3]-p2[1]<0)||(p1[2]-p2[0]<0)||(p2[2]-p1[0]<0)
return 0;
//两框必有重合,计算重合面积
float h,w;
if(p1[0]<p2[0]){ 

if(p1[2]>p2[2]) h=p2[2]-p2[0];
else h=p1[2]-p2[0];
}
else{ 

if(p1[2]>p2[2]) h=p2[2]-p1[0];
else h=p1[2]-p1[0];
}
if(p1[1]<p2[1]){ 

if(p1[3]>p2[3]) w=p2[3]-p2[1];
else w=p1[3]-p2[1];
}
else{ 

if(p1[3]>p2[3]) w=p2[3]-p1[1];
else w=p1[3]-p1[1];
}
// 容斥原理计算IoU
return (h*w)/(p1[2]-p1[0])*(p1[3]-p1[1])+(p2[2]-p2[0])*(p2[3]-p2[1])-h*w)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128747.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql存储过程菜鸟教程_mysql存储过程是什么

    mysql存储过程菜鸟教程_mysql存储过程是什么本文介绍关于在MySQL存储过程游标使用实例,包括简单游标使用与游标循环跳出等方法例1、一个简单存储过程游标实例DELIMITER$$DROPPROCEDUREIFEXISTSgetUserInfo$$CREATEPROCEDUREgetUserInfo(indate_daydatetime)—-实例–存储过程名为:getUserInfo–参数为:date_day…

  • goland2021.3激活码破解方法「建议收藏」

    goland2021.3激活码破解方法,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 求生之路2ping高_DDS信号源

    求生之路2ping高_DDS信号源问答时间:2020年12月17日嘉宾简介:高少星:萌宝集团创始人、稻荷资本创始合伙人、《好玩的书》作者。曾任顺为资本董事总经理、百度高级投资经理,是好大夫、丁香园、一点资讯、宝宝巴士、I…

    2022年10月26日
  • Visifire组件应用

    Visifire组件应用本文转载自:http://www.cnblogs.com/forgetu/archive/2010/06/07/Visifire-AxisLabels.html这篇中简单介绍一下Axis(坐标轴)的主要的几个属性的设置。Visifire废话少说,主要的几个属性及属性的设置和意思请看下面的示例代码和注释:viewsource…

  • vim编辑器,可以实现保存退出()_vim进入编辑模式如何保存并退出

    vim编辑器,可以实现保存退出()_vim进入编辑模式如何保存并退出目录1.Vim模式2.在Vim/Vi中打开文件3.在Vim/Vi中保存文件4.保存文件并退出Vim/Vi5.退出Vim/Vi而不保存文件1.Vim模式启动Vim编辑器时,您处于正常模式。在这种模式下,您可以使用vim命令并浏览文件。要输入文字,您需要按i键进入插入模式。使用此模式,您可以像在常规文本编辑器中一样插入和删除字符。要从其他任何模式返回正常模式,只需按Esc键。2.在Vim/Vi中打开文件要使用Vim打开文件,请键入vim,然后输入要编辑或创建的文件的.

  • LevelDb实现原理

    原文网址:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html郑重声明:本篇博客是自己学习Leveldb实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号