IplImage dans IplImage

Est-il possible de placer une image dans une image avec OpenCv (JavaCv). Par exemple, j’ai une image 1000×1000 et une image 100×100. Et à la position 600×600, je voudrais placer la plus petite image dans la plus grande image.

Disons que la boîte bleue correspond à l’IplImage 1000×1000 et la rouge à l’IplImage 100×100. Est-il possible de mettre la boîte rouge dans la boîte bleue. De préférence, le calcul est plutôt efficace car il doit fonctionner en temps réel.

entrez la description de l'image ici

Merci d’avance

Ceci est en Python, mais la conversion en Java sera très facile. Utilisez GetSubRect() et Copy() . GetSubRect() renvoie un sous- GetSubRect() rectangular GetSubRect() un intérêt (spécifiez le point d’intérêt en haut à gauche, ainsi que la largeur et la hauteur). Ensuite, copiez simplement l’image à l’aide de Copy() .

 import cv blue = cv.LoadImage("blue.jpg") red = cv.LoadImage("red.jpg") sub = cv.GetSubRect(blue, (100, 100, 50, 50)) cv.Copy(red,sub) cv.ShowImage('blue_red', blue) cv.WaitKey(0) 

Comme le suggère karlphillip, vous pouvez spécifier la “région d’intérêt” à l’aide de SetImageROI() et faire à peu près la même chose:

 cv.SetImageROI(blue,(100,100,50,50)) cv.Copy(red, blue) cv.ResetImageROI(blue) 

Il est très important de réinitialiser la ROI, ResetImageROI , sinon vous ne pourrez afficher / enregistrer que la ROI, et non l’ensemble de l’image.

Sortie de démonstration:

bleu: entrez la description de l'image ici rouge: entrez la description de l'image ici combiné: entrez la description de l'image ici