Eu estou usando o opencv solvePnP para obter a rotaçãoe vetores de tradução para uma imagem. Não sei como usar o vetor de rotação. Eu gostaria de converter o vetor rotacional em dois ângulos, o ângulo de inclinação e o ângulo de azimute (como em coordenadas esféricas), porque assim seria mais fácil para mim usar.
Eu criei alguns casos de teste: Locais de pontos 3D: (0,0,0) (0,0,1) (1,0,1) (1,0,0) localização da câmera: (.5, -1, .5) vetor de rotação: (1.57, 0, 0) (voltado para a direção y positiva)
e quando eu virar a localização do pixel correspondentepontos correspondentes para que a câmera esteja localizada em (.5, 1, .5) (voltada para a direção y negativa) o vetor de rotação é (1,2, 1,2, -1,2). Não tenho certeza de como esse último vetor o faz enfrentar a direção y negativa ...
Qualquer conselho sobre como isso funciona ou como convertê-lo em inclinação e azimute seria muito apreciado.
Respostas:
0 para resposta № 1Usei rodrigues opencv para transformá-lo em uma matriz de rotação, depois multipliquei pelo ponto 0,0,1 e usei a nova localização do ponto para dizer onde estou procurando