Le calcul de la traduction de la valeur et de l'angle de rotation d'une rotation de l'image 2D

J'ai deux images dont l'une d'elles est l'image d'Origine et le second est l'image Transformée.

Je dois trouver combien de degrés l'image Transformée a été tourné à l'aide de 3x3 matrice de transformation. De Plus, j'ai besoin de savoir dans quelle mesure traduit de l'origine.

Les deux images sont grayscaled et tenue dans la matrice des variables. Leurs tailles sont les mêmes [350 500].

J'ai trouvé quelques notes de cours comme cette.

Notes de cours, je devrais utiliser la matrice suivante de la formule pour la rotation:
Le calcul de la traduction de la valeur et de l'angle de rotation d'une rotation de l'image 2D

Pour la traduction de la matrice de la formule est:

Le calcul de la traduction de la valeur et de l'angle de rotation d'une rotation de l'image 2D

Tout est bon. Mais il y a deux problèmes:

  1. Je ne pouvais pas imaginer comment mettre en œuvre des formules à l'aide de MATLAB.
  2. Les formules sont en forme pour trouver x',y' valeurs, mais j'ai déjà eu x,x',y,y' valeurs. J'ai besoin de trouver l'angle de rotation (thêta) et tx et ty.
  3. Je veux savoir le equivailence de x, x', y, y' dans la matrice.

J'ai le code suivant:

rotationMatrix = [   cos(theta) sin(theta) 0 ; ...
                    -sin(theta) cos(theta) 0 ; ...
                             0          0  1];


translationMatrix = [  1  0  tx; ...
                       0  1  ty; ...
                       0  0   1];

Mais comme vous pouvez le voir, tx, ty, thêta les variables ne sont pas définies avant d'être utilisé. Comment puis-je calculer theta, tx et ty?

PS: Il est interdit d'utiliser la boîte à outils de Traitement d'Image fonctions.

OriginalL'auteur zkanoca | 2014-05-12