Pregunta

El asunto que estamos tratando de resolver el problema de la localización de un punto en dos representaciones diferentes de un avión. El primer avión que tenemos se hace girar para crear perspectiva; la segunda es una vista en 2D de ese mismo plano. Tenemos 4 puntos en cada uno de los planes que sabemos que son equivalentes. La pregunta es si tenemos un punto arbitrario en el plano 1, ¿cómo encontrar el punto correspondiente en el plano 2?

Es mejor probablemente para ilustrar el caso de uso con el fin de mejor aclarar la cuestión. Hemos ilustrado una imagen de la izquierda.

plano proyectivo

text alt

diagrama de diseño 2D del espacio

text alt

Así lo dado que tenemos son los cuadrados rojos de ambas imágenes. Tenga en cuenta que si es posible, me gustaría que sea posible que el espacio 2D no es necesariamente un cuadrado. Estos están disponibles para nosotros antes de tiempo y conocido. También tengo puntos verdes dispuestas en el plano de la primera imagen. Me gustaría ser capaz de hacer una proyección del punto en la imagen 1 en el espacio en la imagen 2.

Tenga en cuenta también para la imagen 1 no tengo una ventana definida o posición de los ojos. Sólo sé que el cuadrado rojo de la imagen 1 es una transformación de la imagen de forma cuadrada roja 2 y que la imagen 2 se encuentra en el espacio 2D.

¿Fue útil?

Solución

Este es un caso especial de la búsqueda de correspondencias entre los cuadriláteros que preservan las líneas rectas. Estos por lo general se denominan transformaciones homográficas. Aquí, uno de los quads es un cuadrado, por lo que este es un caso especial popular. Puede Google en estos términos ( "quad quad", etc.) para encontrar explicaciones y código, pero aquí hay algunos para usted.

perspectiva Transformar Estimación

una discusión Foro de juegos

extraer una imagen de cuadrilátero a un rectángulo

proyectiva de urdido y cartografía

ProjectiveMappings para ImageWarping por Paul Heckbert.

La matemática no es particularmente agradable, pero no es tan difícil tampoco. También se puede encontrar un código de uno de los enlaces anteriores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top