2014-05-12 7 views
0

J'ai une polyligne, donnée sous la forme d'un tableau de coordonnées relatives x et y (0,0 à 1,0).Transformation de coordonnées dans OpenCV

Je dois dessiner la figure avec la position aléatoire, l'échelle et l'angle de rotation.

Comment puis-je le faire de la meilleure façon?

Répondre

1

Vous pouvez utiliser une simple transformation avec une matrice RT.

Soit X = (x y 1)^t être les coordonnées d'un point de votre figure. Soit R être un 2x2 rotation matrix, et T être le vecteur de traduction 2x1 de la transformation que Vous prévoyez de faire. La matrice RT A aura la forme de A = [R T;0 0 1]. Pour obtenir les coordonnées transformées du point X, vous devez faire ce simple calcul AX = X', où X' sont les nouvelles coordonnées. Maintenant, pour transformer l'ensemble de la figure, au lieu d'utiliser une seule colonne, vous utilisez une matrice où chaque colonne a x coordonnées dans la première rangée, y dans la deuxième et 1 dans la troisième rangée.

Bien sûr, vous pouvez essayer d'utiliser les fonctions fournies par OpenCV, figurant dans this tutorial, ou ceux destinés à des vecteurs de points au lieu d'images entières, mais la façon fait ci-dessus, vous comprenez vraiment ce que vous faites;)

Questions connexes