la copie non-rectangulaire roi opencv
Je veux copier une partie d'une image qui n'est pas rectangle avec C++, opencv. Les points de coin de la partie est connue dans l'image. Je veux la coller dans une autre image dans la position exacte. Quelqu'un peut-il m'aider?
L'image source et l'image de destination sont de même taille.
voici un exemple de source de l'image, je sais p1,p2,p3,p4 et je veux copier une partie vers une nouvelle image.
J'ai déjà une image de destination. Par exemple l'image ci-dessous est l'image de destination, et je veux coller uniquement la partie marquée de l'image source à la destination de l'image. Comment puis-je le faire?
Et le résultat final devrait ressembler à quelque chose comme ça.
Merci,
Vous devez vous connecter pour publier un commentaire.
D'abord créer une image de masque à l'aide de votre quatre coordonnées.
Maintenant à l'aide de Mat::copyTo() copie de votre noir de l'image à la source ici, vous pouvez utiliser au-dessus de masque.
Allouer image noire et d'un masque comme taille source
Maintenant créer un masque d'image à l'aide de drawContours, ici, vous devez utiliser CV_FILLED pour le contour de l'épaisseur.
Comme
Enfin copie d'écran noir à la source ci-dessus en utilisant le masque de
Voir ci-dessous le résultat,
Edit :
Basé sur vos commentaires ci-dessous voici les étapes que vous devez suivre
D'abord créer un Masque d'image comme décrit ci-dessus
La copie de l'image source à de nouveaux Mat dst1 de l'utilisation du masque.
Inverser le masque et la destination de la copie de l'image à un nouveau Tapis de dst2
Pour le résultat final juste ajouter jusqu'dest1 et dest2 à de nouveaux Tapis.
Supposons que vous avez déjà créé un masque comme ci-dessus
Copier la source vers le nouveau Tapis de
Maintenant, inverser le Masque et la destination de la copie de l'image à nouveau Mat
Obtenir résultat final en ajoutant les deux
Dans le cas où votre image sont de taille différente, alors vous pouvez utiliser le code suivant
Ici, vous devez utiliser l'image du ROI pour les copier, créer un masque etc..