由於最近的專案裡面要用到,雖然是個小東西,但還是來記錄一下.
現在我們知道矩形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 ...