Определить площадь пересечения двух прямоугольников

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

есть ли функция OpenCV для этого? Мне сказали, что есть, но я не нашел.

2 ответов


рассматривайте прямоугольники как общие полигоны и разложите проблему на два шага:

  • вычислить пересечение двух полигонов, которое само по себе является многоугольником (или пустым);
  • вычислить площадь полигона.

в интернете есть много литературы по обеим проблемам.

Я ничего не знаю о OpenCV, поэтому не могу дать никаких советов.


вы можете легко преобразовать код библиотек Qt для этого, чтобы использовать его с OpenCV.

найдите эту функцию:

QRect QRect::operator&(const QRect &r) const 

на qrect.cpp.