affine transform matrix from given point set

7 Ansichten (letzte 30 Tage)
Yong Guk Kang
Yong Guk Kang am 5 Nov. 2019
Kommentiert: Bela Zold am 28 Jan. 2021
** same questionswere uploaded in researchgate
I am trying to make general affine 3d transform matrix from 4 point set to another 4-point pointset (actually, it is rigid transformation- rotation + translation) for using with 'imwarp'
e.g pointset (x1 y1 z1)->(X1 Y1 Z1), (x2 y2 z2)->(X2 Y2 Z2),(x3 y3 z3)->(X3 Y3 Z3), (x4 y4 z4)->(X4 Y4 Z4)
However, I found some nice tutorial about affine transform.
From this workbook, the SAM (Simplex Affine Map) is the general affine mapping function from one point to another. In addition, they showed the way to convert this SAM form to canonical form;
where A: rotation matrix, T: translation matrix
I think I can modify this matrix 'A' and 'T' to an affine matrix that compatible with ‘imwarp’in MATLAB.
However, I could not find a nice way to express this Matrix expression in MATLAB unless expand all this cofactor with hand. Can someone suggest an efficient way of expressing this matrix in MATLAB style? or even without this method, could you suggest the way how to generate the transform matrix from give 4 point set?
Regards,
ps. all pictures were from the workbook

Antworten (1)

Yong Guk Kang
Yong Guk Kang am 5 Nov. 2019
I just found the answer on my own. It's so funny that I didn't think this way.
I will leave an answer here for people like me 4 hours ago...
%R=A*T where R= reference points, T= target points
% 4 pointset of reference
r1 =[1 0 0]
r2 =[1 1 0]
r3 =[2 0 0]
r4 =[1 0 1]
% 4 pointset of target
t1 =[0 0 0]
t2 =[0 2 0]
t3 =[2 0 0]
t4 =[0 0 2]
%homogenous coordinate
R=[r1,1; r2,1; r3,1; r4,1]';
T=[t1,1; t2,1; t3,1; t4,1]';
%since R=A*T, A= R*inv(T) or just A=R/T (in MATLAB)
A=R/T
% Result :
% A =
%
% 0.5000 0 0 1.0000
% 0 0.5000 0 0
% 0 0 0.5000 0
% 0 0 0 1.0000
% computes twofold scaled, translated matrix well
  1 Kommentar
Bela Zold
Bela Zold am 28 Jan. 2021
I have been looking for this solution for a while. Thank you.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Agriculture finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by