How to use maketform to get affine transform?

8 次查看(过去 30 天)
I'm unsure from the documentation how to use maketform.
I'm taking two points each from two images and using them to make a similarity matrix A which I then pass into maketform to get an affine transform:
maketform('affine', inv(A)');
What is A supposed to be and what format is it meant to be in? If I pass in a 2x2 matrix I get an error:
Error using maketform>validate_matrix (line 320)
The final column of A must consist of zeroes, except for a one in the last row.

回答(2 个)

Dishant Arora
Dishant Arora 2014-3-14
A is transformation matrix that is used for scaling, rotating and other spatial transformations. See this blog Spatial transformations: Affine
  1 个评论
t
t 2014-3-14
Ah thanks. Is it possible to find the transformation matrix if you have the original point and the transformed point?

请先登录,再进行评论。


Alex Taylor
Alex Taylor 2014-3-14
1) Why not just use fitgeotrans to construct your transformation from a set of matched control points?
2) What is inv(A)' ?
Unlike many books, MATLAB uses the convention that an affine transformation is of the form:
T = [A11 A12 0;...
A21 A22 0;...
Tx Ty 1];
Are you possibly using a transposed definition?
3) maketform is not the recommended way of doing this anymore. Try using affine2d/affine3d and imwarp instead of maketform and imtransform.

产品

Community Treasure Hunt

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

Start Hunting!

Translated by