2012-07-11 46 views
6

EDITAR: Ahora he encontrado esta pregunta similar con una respuesta muy detallada:el cálculo de los puntos de destino para findHomography de OpenCV

proportions of a perspective-deformed rectangle


estoy usando findHomography() y warpPerspective() métodos de OpenCV a "de skew" una fotografía de una hoja de papel. Tengo esto funcionando en gran medida, pero estoy atascado en un detalle.

La parte que no entiendo cómo hacer es calcular el conjunto óptimo de puntos de destino para ingresar al findHomography(). Sé que quiero que mi salida sea rectangular, pero no sé la relación entre el ancho y el alto del rectángulo. También quiero que el rectángulo de salida tenga un tamaño tal que exista una escala mínima de la imagen de salida cuando aplique la transformación a través del warpPerspective(). Todo lo que tengo son los cuatro puntos que forman el cuadrilátero que quiero transformar en la imagen de origen. ¿Cómo calculo un rectángulo de destino de tamaño óptimo?

+0

duplicado de esta pregunta: http://stackoverflow.com/questions/1194352/proportions-of-a-perspective-deformed-rectangle – TomSwift

Respuesta

4

El método findHomography() necesitará cuatro puntos (si usa Direct Linear Transform). Si desea el conjunto óptimo, necesitará el conjunto de 4 puntos que la homografía de DLT proporciona el error mínimo de reproyección. Quiero decir, necesitas un método que detecte los valores intrínsecos/atípicos para el modelo matemático particular od DLT.

Este método es RANSAC, y OpenCV lo tiene implementado. Encontrará ejemplos de findhomography() combinados con RANSAC.

Personalmente encuentro un problema con esto y es el número de iteraciones de RANSAC en OpenCV, que es demasiado alto. Si estás buscando velocidad óptima, tendrás que profundizar en los códigos.

+0

Gracias; buena información. Pero no es lo que necesitaba; mi principal necesidad era encontrar la relación de W a H para el rectángulo de salida, y encontré la respuesta en la pregunta similar que encontré y marqué. – TomSwift

+0

¿está bien conectar más de 4 puntos en 'findHomography()'? – solvingPuzzles

Cuestiones relacionadas