Pergunta

Com isto Caixa de ferramentas Eu estava realizando a calibração da minha câmera.

No entanto, as saídas da caixa de ferramentas resulta em forma de matriz e, sendo um noob, eu realmente não entendo coisas matemáticas.

A matriz está na seguinte forma.

alt text

Onde r é uma matriz de rotação, t é um vetor de tradução.

E esses são os resultados que obtive da caixa de ferramentas. Ele gera valores em pixels.

-0.980755   -0.136184  -0.139905  217.653207
0.148552    -0.055504  -0.987346  995.948880
0.126695    -0.989128  0.074666  371.963957
0.000000    0.000000  0.000000  1.000000

Usando esses dados, posso saber quanto minha câmera é girada e a distância do objeto de calibração?

Foi útil?

Solução

A parte da distância é fácil. A tradução da origem é dada pelos três primeiros números na coluna mais à direita. Isso representa a tradução nas direções x, y e z, respectivamente. No seu exemplo, a posição da câmera p = (px, py, pz) = (217.653207, 995.948880, 371.963957). Você pode levar a distância euclidiana entre a localização da câmera e a localização do objeto de calibração (cx, cy, cz). Isto é, seria apenas sqrt ((px-Cx)2 + (py-Cy)2 + (pz-Cz)2 )

A parte mais difícil diz respeito à rotação que é capturada nos elementos 3x3 superior esquerdo da matriz. Sem saber exatamente como eles chegaram a isso, você está um pouco sem sorte. Isto é, não é fácil converter isso de volta para Ângulos de Euler, Se é o que você quer. No entanto, você pode transformar esses elementos em um Rotação de quaternion O que lhe dará o vetor e o ângulo de unidade exclusivos para girar a câmera para essa orientação. Os detalhes do cálculo são fornecidos aqui. Depois de ter a rotação do quaternão, você pode aplicá -la facilmente aos vetores n = (0, 0, 1), up = (0, 1, 0) e à direita = (1, 0, 0) para obter o normal (direção a câmera é apontada), vetores para cima e corretos. O vetor certo só é útil se você estiver interessado em matar a câmera para a esquerda ou direita da sua posição atual.

Outras dicas

Eu acho que o código usa o 'padrão'Formação - então você encontrará mais detalhes no OpenCV Library Docs ou o livro deles.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top