Homografía
Una matriz 3x3 que representa la transformación proyectiva entre dos planos, utilizada en unión de panoramas, corrección de perspectiva y reconocimiento de marcadores AR para describir correspondencias geométricas.
Una homografía es una matriz 3x3 que describe el mapeo proyectivo entre dos planos. Codifica cómo los puntos en una superficie plana corresponden a puntos en otra vista desde diferentes posiciones, y se utiliza en la unión de panoramas, la corrección de perspectiva y el reconocimiento de marcadores AR.
La matriz H tiene 8 grados de libertad en coordenadas homogéneas:
- El punto fuente
(x, y, 1)multiplicado por H produce(x', y', w') - Coordenadas reales:
(x'/w', y'/w') - Un mínimo de 4 correspondencias de puntos determina H de forma única
Pipeline de estimación:
- Detección de características: Extraer puntos clave usando SIFT u ORB
- Emparejamiento: Encontrar pares correspondientes mediante comparación de descriptores
- RANSAC: Estimar H de forma robusta mientras se rechazan valores atípicos
- Refinamiento: Minimizar el error de reproyección con Levenberg-Marquardt
La homografía es un superconjunto de la transformación afín - no necesariamente preserva el paralelismo, permitiendo la corrección de distorsión trapezoidal y de perspectiva. Sin embargo, cuando la cámara se desplaza, una sola homografía solo es válida para los puntos de un plano; en ese caso, las escenas con profundidad variable requieren múltiples homografías o enfoques alternativos. En OpenCV, cv2.findHomography() estima la matriz y cv2.warpPerspective() la aplica.