Bonjour,
Dans le cadre de mon projet, je dois réaliser une méthode qui redimensionne un triangle (ce sera toujours un triangle) en un autre triangle de taille et de forme différente.
Mon problème se situe au niveau de la transformation de la texture (image) contenu dans ce triangle. Comment l'adapter pour qu'elle remplisse complètement mon nouveau triangle. Existe-il des méthodes incluses avec openCV pour réaliser cette opération ?
J'utilise openCV (2.4) en C++ (VS 2010), actuellement (peut être changé) j'ai une class qui stock mes triangles (en fait, j'en ai beaucoup, ils forment un mesh et sont créé par Delaunay).
Le stockage est sous cette forme :
std::vector<cv:: Point> sommets
cv::Mat image;
cv::Mat mask;
mon mask est en réalité le triangle (binaire), mon cv::Mat image contient la texture "découpé" dans mon image d'origine selon le mask. Cette image (ainsi que le mask) fait la taille du triangle inscrit dans un rectangle.
Voici l'action à réaliser en schéma :
Donc j'ai les 2 points jaunes qui sont fixes (et donc naturellement la droite verte aussi) et je déplace le points bleu. Mon objectif est de transformer ma texture initiale (ici un dégradé pour faciliter la compréhension) pour l'adapter au nouveau triangle.
Le cadre gris est mon cv::Mat tel qu'il sera stocké.
Merci.
Partager