2012-06-14 17 views
7

Estoy intentando aprender opencv. Tengo una pregunta sobre la homografía y la geometría epipolar.¿Puedo reutilizar la matriz de Homografía calculada a partir de 2 imágenes diferentes de la misma escena tomadas por 2 cámaras diferentes?

Supongamos que he calculado la homografía utilizando la función cvFindHomography() utilizando dos puntos de características coincidentes de imágenes estáticas tomadas con dos cámaras desde dos puntos de vista diferentes.

¿Es un error si reutilizar matriz de homografía para detectar los puntos correspondientes en la cámara 1 (derecha) de la imagen tomada por camera2 (izquierda) (porque sé que x' = H.x donde x' es 2d punto de función homogénea imágenes izquierda, x ¿es correcto el punto de característica homogéneo 2d de las imágenes? y H es la matriz de homografía) donde los 2d puntos en camera1 y camera2 no se usaron para calcular la matriz de homografía?

Lo que quiero decir es si puedo reutilizar la matriz de homografía calculada de esas dos cámaras para encontrar los puntos correspondientes para cualquier imagen que no se use para calcular la matriz de homografía.

¿Importa qué imagen utilizo cuando una vez fue determinada por imágenes fijas? ¿o necesito calcularlo todo el tiempo?

Respuesta

8

Puede usar la homografía para proyectar puntos de una imagen a otra, siempre que las cámaras ya no se muevan y la escena no cambie.

Entiendo que esas cámaras (calibradas) toman las imágenes y luego trabaja con esas dos imágenes todo el tiempo. De acuerdo, si calcula la homografía, puede proyectar todos los puntos que desee de ambas imágenes. Obtendrá algún error, por supuesto, pero esto se debe al ruido en las imágenes y las no linealidades que afectan al método lineal utilizado por la findhomografía.

Si sigue capturando imágenes con las cámaras, debe volver a calcular la homografía para cada nuevo par de imágenes, ya que no conoce a priori cómo cambiará la escena.

+0

Muchas gracias por su respuesta. – mvr950

Cuestiones relacionadas