How to use maketform to get affine transform?
4 ビュー (過去 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.
0 件のコメント
回答 (2 件)
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
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.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Read, Write, and Modify Image についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!