#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. да, этот ответ решает мою проблему. Спасибо!!