import numpy as np
def computeiou(boxA, boxB):
x1 = np.max([boxA[0], boxB[0]])
y1 = np.max([boxA[1], boxB[1]])
x2 = np.min([boxA[2], boxB[2]])
y2 = np.min([boxA[3], boxB[3]])
area_all = np.max([(x2 - x1+1),0])*np.max([(y2 - y1+1), 0])
areas = (boxA[2]-boxA[0]+1)*(boxA[3]-boxA[1]+1) + (boxB[2]-boxB[0]+1)*(boxB[3]-boxB[1]+1) - area_all
iou = area_all / areas
return iou
boxA = [1,1,3,3]
boxB = [2,2,4,4]
print(computeiou(boxA, boxB))