求解仿射变换矩阵

时间:2013-11-18 00:00:27

标签: image math linear

好吧......我一直在查看过去那些涉及找到仿射矩阵的问题的答案,我认为我已经弄明白了,但是我被卡住了。

我有两个不同的图像三角形网格。我手动改变了一些三角形顶点。所以现在,我正在尝试关注三角形网格的一个三角形,顶点(x1,y1)(x2,y2)和(x3,y3)变为(x1',y1')(x2) ',y2')和(x3',y3')。因此,如果点确实发生变化,我想解决仿射变换,这样我就可以进入三角形并映射点。希望有道理。

无论如何,在尝试解决我试过的仿射时:

O = [x1 x2 x3; y1 y2 y3; 1 1 1] N = [x1'x2'x3'; y1'y2'y3'; 1 1 1]

并运行A = inv(O)* N但是没有得到正确的答案。我确定有一些非常愚蠢的东西我会忽略......但......我只是想不出来。谢谢任何人

1 个答案:

答案 0 :(得分:1)

我假设''(空格)分隔列和';'(分号)分隔矩阵的行。那么你的点就是矩阵中的。即。

    [x1 x2 x3]      [x1' x2' x3']
O = [y1 y2 y3]  N = [y1' y2' y3']
    [1  1  1 ]      [ 1   1   1 ]

在这种情况下,将产品的订单交换为

A = N*int(O)

获得矩阵

p' = A*p

即。你将右边的点矢量乘以

交换矩阵顺序或转置矩阵将有助于处理有关行/列的各种约定,从一侧或另一侧进行乘法。但是这两者结合在一起,所以如果我正确地阅读符号,你的解决方案看起来就不一致了。