2010-11-18 11 views
5

El problema que estamos tratando de resolver es el problema de localizar un punto en dos representaciones diferentes de un avión. El primer avión que tenemos se rota para crear perspectiva; el segundo 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 encontramos el punto correspondiente en el plano 2?¿Cómo puedo proyectar un plano arbitrario identificado por 4 puntos en un plano 2d?

Es mejor ilustrar el caso de uso para aclarar mejor la pregunta. Tenemos una imagen ilustrada a la izquierda.

Projective plane

alt text

diagrama de diseño 2D del espacio

alt text

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 sea necesariamente un cuadrado. Estos están disponibles para nosotros con anticipación y conocidos. También tengo puntos verdes dispuestos en el avión en la primera imagen. Me gustaría poder hacer una proyección del punto en la imagen 1 en el espacio de la imagen 2.

Tenga en cuenta también para la imagen 1 No tengo una ventana definida o la posición del ojo. Solo sé que el cuadrado rojo de la imagen 1 es una transformación de la imagen 2 de la forma del cuadrado rojo y que la imagen 2 está en el espacio 2D.

+0

Puede ser posible si tiene (x, y, z) para sus puntos de fotografía ... o si ASUME alguna z ... –

+2

Si le gusta OpenCV, este problema se conoce como encontrar la homografía ('cv :: findhomography'). Cuando haya terminado, cualquier punto de su primera imagen se asignará a la segunda vista aplicando 'x '= Hx' en coordenadas homogéneas. –

Respuesta

6

Este es un caso especial de encontrar mapeos entre cuadriláteros que conservan líneas rectas. Estos generalmente se llaman transformaciones homográficas. Aquí, uno de los quads es un cuadrado, por lo que este es un caso especial popular. Puede buscar estos términos en google ("quad to quad", etc.) para encontrar explicaciones y códigos, pero aquí hay algunos para usted.

Perspective Transform Estimation

a gaming forum discussion

extracting a quadrilateral image to a rectangle

Projective Warping & Mapping

ProjectiveMappings for ImageWarping por Paul Heckbert.

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

+0

El primer enlace fue muy útil, gracias. – Scott

Cuestiones relacionadas