getAffineTransform — opencv

Q1. Я хочу сопоставить точки (x1, x2, x3) с точками (y1, y2, y3). Работает ли getAffineTransform всегда возвращать одну и ту же матрицу преобразования независимо от порядка этих точек?

Q2. Если я знаю, что эти точки преобразуются только путем поворота и перемещения без какого-либо масштабирования, что будет проще всего удалить масштабированием из матрицы преобразования, возвращаемой getAffineTransform,

0

Решение

А1, да, решение должно быть уникальным, если два набора точек не коллинеарны.

A2, ваша матрица результатов будет иметь вид:

[ A B C ]
[ D E F ]

C ваш перевод в х; F ваш перевод в у. Оба являются масштабно-инвариантными.

Если вы возьмете самые левые термины, они соответствуют вращению и масштабу

[A B]
[D E]

в следующей формуле:

[I cos(t)  -I sin(f)]
[J sin(t) J cos (F)]

где I — шкала в x, а J — шкала в y.

Чтобы удалить масштабирование, разделите на A и B на sqrt (A * A + B * B) и D и E на sqrt (D * D + E * E)

6

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector