2013-11-18 4 views
0

Хорошо ... Я просматривал прошлые ответы на вопросы, связанные с поиском аффинной матрицы, и я думал, что понял, но я застрял.Решение для матрицы аффинного преобразования

У меня есть две разные треугольные сетки изображения. Я вручную изменил некоторые вершины треугольника. Итак, теперь я перехожу к одному треугольнику треугольной сетки с вершинами (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

Я предполагаю, что '' (пробел) разделяет столбцы, а ';' (точка с запятой) разделяет строки ваших матриц. Затем ваши очки: столбцы в вашей матрице. То есть

[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 

т.е. умножить вектор точки с правой стороны.

Подстановочный матричный порядок или транспонирующие матрицы помогут справиться с различными соглашениями относительно строк/столбцов, умножением с одной или другой стороны. Но эти два идут вместе, поэтому ваше решение выглядит непоследовательным, если я правильно прочитаю нотацию.

Смежные вопросы