Best Fiit 2D Transformation
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have N pairs of points in the X,Y plane. I am trying to find the best fit 2D transformation which consists of the following sequence of operations.
- Stretch in the X and Y directions, governed by two parameters Lambda_X and Lambda_Y
- A rotation by an angle "theta" about the origin.
- A shift governed by 2 parameters, delta_X, delta_Y
Is there a procedure to determine the best fit 5 parameters to which performs this transformation?
I've been successful at using SVD to determine the best fit rigid body transformation. If the original N points are given in a 2XN matrix, Xin and the transformed points are given by another 2XN matrix Xout, I can calculate the best fit rigid body transformation by the following code.
%strip off mean position from Xin
XinNoMean=Xin-repmat(mean(Xin,2),1,inCol);
%strip off mean position fron Xout
XoutNoMean=Xout-repmat(mean(Xout,2),1,inCol);
%throw away any stretch components to extract orthogonal transformation
%calculate covariance of input and output
Q=XoutNoMean*XinNoMean';
%perform svd of the covariance matrix
[U,~,V]=svd(Q);
A=(U*V'); %get rid of the stretch terms
%calculate translation
b=mean(Xout-A*Xin,2);
Here the matrix A is an orthogonal matrix whose eigenvalues are 1,1. The A matrix depends upon 1 paramter, and b vector depends upon 2 parameters.
Somehow, I feel like I want to find the best fit SVD decomposition of the matrix Q which has V identically equal to eye(2). Any ideas would be greatly appreciated.
0 Commenti
Risposte (0)
Vedere anche
Categorie
Scopri di più su Mathematics and Optimization in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!