面试的时候让手写IOU代码,平时项目中遇到多次,自己还用过,但是写的时候,依然磕磕碰碰,没有写好,今天重新记录一下,鼓励自己!
有两个框,设第一个框的两个关键点坐标:(x1,y1)(X1,Y1),第二个框的两个关键点坐标:(x2,y2)(X2,Y2)。以大小写来区分左上角坐标和右下角坐标。
首先,要知道两个框如果有交集,一定满足下面这个公式:max(x1,x2)<=min(X1,X2) && max(y1,y2)<=min(Y1,Y2)!!!!
理解了这个公式,再回去写IOU的代码,自然就一目了然了。
def IOU(x1,y1,X1,Y1, x2,y2,X2,Y2):
xx = max(x1,x2)
XX = min(X1,X2)
yy = max(y1,y2)
YY = min(Y1,Y2)
m =