Bonjour
Je débute avec OpenCV, j'ai besoin d'extraire une partie d'une première image, et de la superposer sur une seconde image.
Merci de m'expliquer la démarche a suivre
Bonjour
Je débute avec OpenCV, j'ai besoin d'extraire une partie d'une première image, et de la superposer sur une seconde image.
Merci de m'expliquer la démarche a suivre
Bonjour,
A priori, voici l'algo que tu dois suivre
Crée 3 variables images
- L'une avec un cvLoadImage, les autres avec des cvCreateImage en prenant les meme dimensions que ta premiere
- POur extraire, je ne me souviens plus de la fonction qui le fait
- Enfin pour superposer, il existe la fonction cvAdd qui superpose 2 images en une (si j'ai bien compris ton terme superposé)
Voila
Bonne journée
Ok merci pour la fonction CvAdd c'est ce que je voulais.
Et comment extraire une partie d'une image?
Je pourrai le faire pixel par pixel dans buffer, mais n'y a t il pas une solution plus simple?
Merci
si tu connais l'endroit ou est ton morceau d'image :
cvSetImageROI(img,Rect)
Rect est un cvRect de la taille de ta zone, et dont l'origine est située au coin haut et gauche de ta zone
ensuite tu manipules ta ROI comme tu veux et quand tu as fini :
cvResetImageRoi(img)
=>
OpenCv Addict
Ok tres bien, mais la zone sur laquelle je travaille n'est pas rectangulaire c'est un quadralitere quelconque. Y a t il alors un substitue à l'utilisation d'un cvrect.
Merci
Ca y est j'ai trouvé, merci de votre aide, pour ceux que ca intéresse:
Utiliser cvgetsubrect pour mettre une partie de l'image dans une matrice
ensuite j'ai mis cette matrice en iplimage (pas nécessaire) avec cvgetimage dans une image temp
Ensuite jouer avec les ROI, et utiliser cvCopy et non cvAdd, pour superposer une image sur une autre.
Un cvCopyImage pour superposer des image là je ne vois pas !
Pour fabriquer une image réduite aux dimensions du roi, oui ....
Comment fais-tu ?
Pour plus de précisions...
Je m'en souviens plus trop mais je vais essayer
J'entends pas superposition d'image le fait d'avoir 2 images au depart, et part OpenCv, les superposer, l'une au dessus de l'autre. Donc la plus petite image au dessus (sinon ca couvrirait tout ^^).
Pour ca comme je l'ai dit precedement, Tu utilises cvCopy en ayant precedement reduit le ROI de l'image de dessous à la dimension de l'image que tu vas copier par dessus.
ResetROI et c'est ok.
PS: CvAdd ajoute les valeurs des pixels... pas utile dans ce cas de figure.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager