Сопряженное преобразование вращения в 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 ответ

Решение

Видимо моя матрица вращения была неправильной.

Другие вопросы по тегам