Сопряженное преобразование вращения в OpenCV
Я пытаюсь применить определенное вращение к изображению, но оно не работает, как ожидалось. У меня есть вращение:
[0.109285 0.527975 0.000000
-0.527975 0.109285 0.000000
0.000000 0.000000 1.000000]
Это должно быть вращение на ~78 градусов вокруг центра камеры (или оси Z, если вы предпочитаете). Чтобы создать гомографию, так как нет компонента перевода, я использую формулу: K * R * K^-1
(бесконечная гомография).
Код, который я использую для преобразования изображения (320x240):
cv::warpPerspective(image1, image2, K * R * K.inv(), image1.size());
где К есть:
[276.666667 0.000000 160.000000
0.000000 276.666667 120.000000
0.000000 0.000000 1.000000]
Полученная матрица из K * R * K.inv()
является:
[0.109285 0.527975 79.157461
-0.527975 0.109285 191.361865
0.000000 0.000000 1.000000]
Результатом должно быть просто вращение изображения, но изображение будет "уменьшено" следующим образом:
Что я делаю неправильно?
1 ответ
Решение