Bonjour,
Je suis en train de développer une application en c++ qui permet de reconstruire des objets dans des images, sauf que des fois les images reconstruites sont décalées càd que la reconstruction marche mais en sortie j'obtiens un objet en rotation d'un certain angle.
Je voulais donc effectuer une rotation de cet objet là pour la positionner au même angle que l'objet de l'image de départ.
J'effectue donc une rotation, voici le code :
où imagerecale est ma nouvelle image dans laquelle je stocke l'image reconstruite mais en rotation d'un certain angle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 for (int x = 0; x<dx;x++) { for (int y = 0; y<dy; y++) { imagerecale(x,y) = image((-cos(angle) * x) + (sin(angle) * y) , -(sin(angle) * x) - (cos(angle) * y)); } }
Ce truc là marche, le problème c'est que la rotation s'effectue autour du bord gauche bas de l'image initiale, j'obtiens donc juste un petit bout de l'objet qui sort du bord bas gauche.
Je devrais effectuer une translation avant la rotation pour positionner l'objet dans l'image au centre et puis faire la rotation, peut être une translation au barycentre de l'objet de l'image ?
Des idées ? Merci en avance !
Partager