Al usar la función findHomography
de OpenCV para estimar una homografía entre dos conjuntos de puntos, desde diferentes imágenes, a veces obtendrá una mala homografía debido a valores atípicos dentro de sus puntos de entrada, incluso si usa RANSAC o LMEDS.¿Cómo se puede saber si una matriz de homografía es aceptable o no?
// opencv java example:
Mat H = Calib3d.findHomography(src_points, dst_points, Calib3d.RANSAC, 10);
¿Cómo se puede saber si la matriz 3x3 homografía resultante es aceptable o no?
He buscado una respuesta aquí en Stackoverflow y en Google y no he podido encontrarla.
me encontré con este artículo, pero es un poco críptico para mí:
"The geometric error for homographies"
Ver pregunta http://stackoverflow.com/questions/10972438/detecting-garbage-homographies-from-findhomography-in-opencv/10981249#10981249 –
si el movimiento de su cámara es limitado, podría intentar descomponer su homografía y escala de prueba, rotación y/o parámetros de traducción para valores drásticos. Otro método: si sabe (o toma la restricción) que las partes grandes de las imágenes se superponen, podría calcular la superposición después de deformar y decidir si podría ser una homografía obviamente falsa. Otro método: si usa RANSAC puede decidir a partir del número de inlier (y/o ratio inlier/total) si la homografía debería ser rechazada) – Micka
@Micka gracias por su ayuda, ya estaba usando RANSAC, el movimiento de la cámara es no limitado y estaba buscando métodos para descartar homografías (principalmente matemáticas) antes de entrar en cómputos más pesados, como aplicar la homografía y verificar la superposición. –