兩個矩形的交並比(IOU)

2021-08-26 14:39:45 字數 1105 閱讀 8587

由於最近的專案裡面要用到,雖然是個小東西,但還是來記錄一下.

現在我們知道矩形t的左下角座標(x0,y0) ,右上角座標(x1,y1) ;

矩形g的左下角座標(a0,b0) ,右上角座標(a1,b1) .

這裡我們可以看到area(roit)跟arae(roig) 在確定座標而不確定兩個矩形是否相交的情況下,為已知的常量.

所以,我們只需要求解area(roit⋂roig)即可.

從上述的三種情況中我們可以看出:

當有重疊或者是內含的情況時,我們可以通過

w=min(x1,a1)−max(x0,a0)

計算得到重疊部分的長度.當滿足第一種情況時,我們發現w<=0

豎直方向上的處理方式類似.得到h

所以處理成**的時候可得:

#rt:righttop

#lb:leftbottom

def iou(rectangle a, rectangleb):

w = min(a.rt.x, b.rt.x) - max(a.lb.x, b.lb.x)

h = min(a.rt.y, b.rt.y) - max(a.lb.y, b.lb.y)

if w <= 0 or h <= 0:

return 0;

sa = (a.rt.x - a.lb.x) * (a.rt.y - a.lb.y)

sb = (b.rt.x - b.lb.x) * (b.rt.y - b.lb.y)

cross = w * h

return cross/(sa + sb - cross)

如何計算兩個矩形框的IoU

由於最近跟別人說我搞過目標檢測,然後被問到乙個問題,如何計算兩個矩形框的iou?一開始我回答說可以採用opencv的 運算和 運算來計算iou,但他要我不採用opencv 的介面,自己寫。當時我回答的比較亂,分4種情況進行討論2個矩形框之間的位置關係,最後他告訴我說,根本不需要討論,採用max mi...

任意兩個旋轉矩形的IOU計算方法

方法一 import cv2 import numpy as np image cv2.imread downloads timg.jpeg original grasp bboxes np.array 361,260.582 301 315 320 336 380,281.582 dtype np...

兩個矩形的並

mo的老師給了他兩個矩形,讓他求兩個矩形的面積並。mo很忙沒時間解決這種小case,請你幫他解決。輸入兩行,每行四個整數 x,y,x1,y1 x,y 是矩形左下角,x1,y1 是矩形的右上角.0 x,y,x1,y1 1000 輸出乙個整數表示二個矩形的面積並。input 0 1 2 3 1 0 3 ...