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

Foi útil?

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 .

  1. Depois de ter as coordenadas 2D sobre a imagem, re-purpose enviesada essas coordenadas como coordenadas de textura.

  2. 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.

Perspectiva Texture Mapping por Chris Hecker

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