Вычислить пересечение по объединению двух прогнозов

#python

#python

Вопрос:

Мне нужно вычислить пересечение по объединению двух прогнозов, которые, например, не пересекаются. Мой код выглядит следующим образом:

     yminA = max(coordenadas_A[0]*1024,coordenadas_B[0]*1024)
    xminA = max(coordenadas_A[1]*1024,coordenadas_B[1]*1024)
    ymaxA = max(coordenadas_A[2]*1024,coordenadas_B[2]*1024)
    xmaxA = max(coordenadas_A[3]*1024,coordenadas_B[3]*1024)

    interArea = max(0, ymaxA - yminA   1) * max(0, xmaxA - xminA   1)

    boxAArea = (coordenadas_A[2]*1024 - coordenadas_A[0]*1024   1) * (coordenadas_A[3]*1024 - coordenadas_A[1]*1024   1)
    boxBArea = (coordenadas_B[2]*1024 - coordenadas_B[0]*1024   1) * (coordenadas_B[3]*1024 - coordenadas_B[1]*1024   1)
    
    iou = interArea / float(boxAArea   boxBArea - interArea)

    print(iou)
 

но я получаю, например, такие результаты:

 1.7540044296738415
0.6296533530603247
0.5313443694664705
0.6413727857109087
 

Откуда я знаю, что два roi перекрываются или нет?

Комментарии:

1. В чем проблема с получаемыми результатами?

2. откуда я знаю, что два roi перекрываются или нет?

Ответ №1:

Изменение ymaxA и xmaxA переменные функционируют max на min .

     ymaxA = min(coordenadas_A[2]*1024,coordenadas_B[2]*1024)
    xmaxA = min(coordenadas_A[3]*1024,coordenadas_B[3]*1024)
 

… вместо

     ymaxA = max(coordenadas_A[2]*1024,coordenadas_B[2]*1024)
    xmaxA = max(coordenadas_A[3]*1024,coordenadas_B[3]*1024)
 

Комментарии:

1. да, этот ответ решает мою проблему. Спасибо!!