algoritmo de rotação avião rápido?
-
02-07-2019 - |
Pergunta
Eu estou trabalhando em um aplicativo que detecta o retângulo mais proeminente em uma imagem, em seguida, procura para girá-lo de modo que a parte inferior esquerda dos restos retângulo na origem, semelhante à forma como IUPR de OSCAR sistema funciona. No entanto, uma vez que o retângulo mais proeminente é detectado, estou inseguro sobre como levar em conta o componente de profundidade ou eixo z, como o retângulo não será sempre "de cabeça erguida". Quaisquer exemplos para promover o meu entendimento seria muito apreciada. Visto abaixo é um exemplo de sistema de OSCAR de IUPR.
alt texto http://quito.informatik.uni-kl.de/oscar/oscar.php?serverimage=img_0324.jpg&montage=use
Solução
Você não realmente precisa lidar com a informação 3D, neste caso, é apenas uma função mappping, de um conjunto de coordenadas para outro.
Olhe para transformações afins, eles são capazes de corrigir simples efeitos de inclinação e perspectiva. Você deve ser capaz de encontrar um lugar de código que irá calcular uma transformação a partir dos 4 pontos nos cantos de seu retângulo.
Quase esqueci -. Se "rápido" é realmente importante, você pode simplificar o sistema para usar somente transformações de cisalhamento simples em combinação, no entanto, que vai ter um impacto negativo sobre a qualidade de imagem para os indivíduos altamente inclinadas
Outras dicas
Na verdade, eu acho que você pode ir longe com algo muito mais simples do que de Mark abordagem .
-
Depois de ter as coordenadas 2D sobre a imagem, re-purpose enviesada essas coordenadas como coordenadas de textura.
-
Em um renderizador, desenhe um retângulo simples, onde os vértices de cada canto são textura mapeada para os vértices encontrado na imagem 2D enviesada (normalizado e de outra forma transformada para a textura do seu sistema de renderização plano de coordenadas).
Agora você pode confiar em hardware (usando OpenGL ou similar) para fazer a correção para você, ou você pode escrever seu próprio mapeador de textura:
A relação de aspecto terá que ser imaginado uma vez que estamos a eliminação do actual informações 3D. No entanto, você pode começar afastado com apenas tomando a largura máxima e altura máxima de seu retângulo distorcida.