好吧......我一直在查看过去那些涉及找到仿射矩阵的问题的答案,我认为我已经弄明白了,但是我被卡住了。
我有两个不同的图像三角形网格。我手动改变了一些三角形顶点。所以现在,我正在尝试关注三角形网格的一个三角形,顶点(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但是没有得到正确的答案。我确定有一些非常愚蠢的东西我会忽略......但......我只是想不出来。谢谢任何人
答案 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
即。你将右边的点矢量乘以。
交换矩阵顺序或转置矩阵将有助于处理有关行/列的各种约定,从一侧或另一侧进行乘法。但是这两者结合在一起,所以如果我正确地阅读符号,你的解决方案看起来就不一致了。