[ ui vi ]' = [ a1 a2; a3 a4 ]*[ xi yi ]' + [ tx ty ]'
A * x = B;
A = [ x1 y1 0 0 1 0;
x2 y2 0 0 1 0;
: : : ......…………;
..................………;
xn yn 0 0 1 0;
0 0 x1 y1 0 1;
0 0 x2 y2 0 1;
: : : ......…………;
..................………;
0 0 xn yn 0 1; ];
B = [ x1'; x2';...; xn';y1';...; yn' ];
H = [a1; a2; a3; a4; tx; ty];
A * x = B;
A = [ x1 y1 0 0 1 0;
x2 y2 0 0 1 0;
: : : ......…………;
..................………;
xn yn 0 0 1 0;
0 0 x1 y1 0 1;
0 0 x2 y2 0 1;
: : : ......…………;
..................………;
0 0 xn yn 0 1; ];
B = [ x1'; x2';...; xn';y1';...; yn' ];
H = [a1; a2; a3; a4; tx; ty];
H = pinv(A)*B;
scale, rotation, translation是一个整体, 缺少一个效果可能会大幅降低