Матрица вращения openCV - PullRequest
       7

Матрица вращения openCV

6 голосов
/ 20 декабря 2010

Я хотел бы знать, как найти матрицу вращения для набора функций в кадре. Я буду более конкретным. У меня есть 2 кадра с 20 функциями, скажем, кадр 1 и кадр 2. Я мог бы оценить расположение объектов в обоих кадрах. Например, скажем, определенная особенность фрейма 1 в местоположении (x, y), и я точно знаю, где это так, скажем (x ', y').

Мой вопрос заключается в том, что объекты перемещены и, возможно, повернуты, поэтому я хочу знать, как вычислять матрицу вращения, я знаю матрицу вращения для 2D:

alt text

Но я не знаю, как вычислить угол и как это сделать? Я попробовал функцию в OpenCV, которая cv2DRotationMatrix();, но проблема в том, что, как я упоминал выше, я не знаю, как вычислить угол для матрицы вращения, и еще одна проблема, которая дает матрицу 2 * 3, поэтому она не будет работать без причины, если я возьму эту матрицу 20 * 2, (20 - число признаков, а 2 - местоположение в (x, y)) и умножу ее на матрицу на 2 * 3, которая является результатом функции, тогда я получит матрицу 20 * 3, которая кажется нереальной, потому что я работаю с 2D.
И что же мне делать? Чтобы быть более точным, покажите мне, как вычислить угол, чтобы использовать его в матрице?

Ответы [ 2 ]

6 голосов
/ 20 декабря 2010

Я не уверен, что понял ваш вопрос, но если вы хотите узнать угол поворота, возникающий в результате произвольного преобразования ...

Простой взлом состоит в преобразовании точек [00] и [10] и получение угла луча от первой преобразованной точки ко второй.

o = M • [0 0]
x = M • [1 0]
d = x - o
θ = atan2(d.y, d.x)

Это не учитывает перекос и другие неортогональные преобразования, для которых понятие«угол» расплывчат.

3 голосов
/ 21 декабря 2010

Посмотрите на эту функцию:

cvGetAffineTransform

Вы даете ей три очка в первом кадре и три во втором.И он вычисляет матрицу аффинного преобразования (перевод + вращение)

Если вы хотите, вы также можете попробовать

cvGetPerspectiveTransform

С этим вы можетеполучить перевод + поворот + перекос + много других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...