Como criar uma visão panorâmica da imagem para um determinado plano?

9

Recebo um plano (vetor de suporte e vetor normal do plano), uma imagem tirada por uma câmera da qual conheço os parâmetros intrínsecos (fx, fy, cx, cy). Como faço para obter a transformação desta imagem para uma imagem semelhante a uma visão panorâmica (de modo que a visão das aves seja colinear para o vetor normal do plano). Estou confuso com os sistemas de coordenadas que tenho que usar, algumas matrizes em coordenadas mundiais e algumas em locais. Eu sei que há warpPerspective() no OpenCV, isso faria o trabalho?

Estou usando o OpenCV: 2.4.9

Muito obrigado!

Atualização: Eu tenho que calcular 4 pontos com a câmera voltada para normal, então 4 pontos da vista de olho de pássaro e passá-los para findHomography() para obter a matriz de transformação?

Atualização: Resolvido Conseguiu para trabalhar!

    
por Sean M. 06.12.2014 в 16:05
fonte

1 resposta

2

Um retângulo no plano mundial aparecerá como um quadrângulo em sua imagem.
Na visão de um pássaro, você quer que ele apareça como um retângulo novamente. Você deve saber pelo menos a razão de aspecto deste retângulo mundial para que a vista superior seja dimensionada de maneira correta e uniforme ao longo dos dois eixos.

Dado os 4 pontos quadrados do quadrângulo na sua imagem, e os cantos do retângulo de destino (para os quais você essencialmente escolhe as coordenadas 2D) você pode calcular a homografia do quadrângulo para um retângulo e usar warpPerspective() para processá-lo.

Esta é geralmente a maneira mais fácil de fazer isso.

Você também pode passar pela câmera e pelas próprias matrizes. Para isso, você precisará girar a câmera para ficar acima do plano com projeção ortográfica. Veja a decomposição da homografia aqui .

    
por Adi Shavit 08.12.2014 / 08:40
fonte