Estimating constrained transformation matrix

Hi, I have:
B=A*T+error
I would like a fast estimation of transformation matrix that minimize the error where:
B and A two set of 2d points:
A=[Xi Yi 1] , B=[Xi' Yi']
and
T=|Sx*cos(r) -Sy*sin(r)|
|Sx*sin(r) Sy*cos(r) |
|tx ty |
where:
-pi/4<r<pi/4 1<Sx,Sy<10 -1000<tx,ty<1000
Thanks :)

Answers (2)

help lsqcurvefit
Best wishes
Torsten.
Thanks for responses, and sorry for my bad English!!, Yes I have already tested "optimtool" functions on Matlab (may be applied on any non linear function), however, the results are mostly local optimum. I was hopping for more specific solution to the problem with numericals approaches, here I have downed the problem as, above there is a little mistake (between sx and sy):
[Xi Yi] and [Xi' Yi'] are sets of centred 2d point, so we do not bother with translation (tx, ty)
[Xi' Yi'] = [Xi Yi] * |Sx 0| * | cos(r) -sin(r)| = [Xi Yi] * Sc * Rot
|0 Sy| | sin(r) cos(r)|
The result may be threshold after, to satisfy constrains on r, sx and sy.
Rot matrix is orthonormal, and "pinv" is pseudo inverse matrix
Sc*Rot=pinv([Xi Yi])*[Xi' Yi']
use of SVD decomposition:
Sc*Rot=V*S*D , where V and D are orthonormal matrix:
Here we can assume : Rot=D and Sc=V*S, however Sc is diagonal matrix,
Then, is there any approximation that may estimate Sc (diagonal matrix) to minimize error between [Xi' Yi'] and transformed [Xi Yi].
Thanks :)

Categories

Find more on Linear Algebra in Help Center and File Exchange

Tags

No tags entered yet.

Asked:

on 12 Nov 2015

Answered:

on 17 Nov 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!