2010-12-06 24 views
8

J'ai deux rectangles, chacun identifié par un ensemble de quatre coordonnées. J'ai lu sur la façon de voir si elles se croisent, mais comment puis-je calculer la superficie de l'intersection? Les rectangles ne sont pas alignés sur les axes.Déterminer l'aire de l'intersection de deux rectangles

Y at-il une fonction OpenCV pour cela? On m'a dit qu'il y en avait, mais je n'arrive pas à le trouver.

Répondre

2

traiter vos rectangles comme des polygones généraux, et décomposer le problème en deux étapes:

  • calculer l'intersection des deux polygones, qui est elle-même un polygone (ou est vide);
  • calculer la surface du polygone résultant.

Il y a beaucoup de littérature sur le Web pour les deux problèmes. Je ne connais rien à OpenCV, donc je ne peux pas donner de conseil là-bas.

+0

encore mieux - les traiter comme des polygones convexes – relaxxx

1

Vous pouvez facilement convertir le code des bibliothèques Qt pour l'utiliser avec OpenCV.

Rechercher cette fonction:

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

En qrect.cpp.