从2对Matlab获得2d仿射变换

时间:2014-04-13 21:12:30

标签: matlab transformation matrix-multiplication affinetransform

我在齐次坐标x1(x1; y1; z1)中有5个点的矩阵.x4(x4; y4; z4)。我知道在对此矩阵应用仿射变换后,x1移动到x1_prime,x2 - 到x2_prime。我怎样才能找到转换矩阵?

我试过

X = [x1 x2];
X_prime = [x1_prime x2_prime];
T = X_prime/X;

但这不起作用。在我的4分上应用T后,我得到1分段。

enter image description here

我在Matlab中尝试过fitgeotrans(),但我想我使用它不正确。 你能帮我在Matlab中找到仿射变换矩阵吗?

由于

2 个答案:

答案 0 :(得分:0)

您尝试解决的矩阵是3x3矩阵。但是,您已将数据打包成1x15矩阵,而不是3x5矩阵,这样您就可以轻松地进行反向解析。 试试这个:

X = [x1;x2;x3;x4;x5];
X_prime = [x1_prime;x2_prime;...];
T = X_prime/X;

答案 1 :(得分:0)

有2分,就不可能找到仿射变换矩阵

 [a b c;
  d e f; 
  g h i].

我们需要3分。只有这样,对于每行矩阵,我们将有3个未知数和3个方程。 我们可以找到2分

[a b;
 d e]

矩阵的一部分,然后加0 0 1' s我们将获得仿射变换

   [a b 0;
    d e 0;
    0 0 1]