Cómo usar OpenCV para determinar el ángulo de una línea encontrada con la función HoughLines
Si utiliza la función HoughLines, proporcionará una línea recta definida por dos parámetros: theta y rho, por ejemplo
Líneas vectoriales Vec2fgt;
/Detectar líneas
HoughLines (imagen, líneas, 1, CV_PI / 180, 150, 0, 0);
//Obtener líneas
for (size_t i = 0; ilt; lines.size(); i )
{
float rho = líneas[i][0], theta = líneas[i][ 1 ];
....
}
o
Usando la función HoughLinesP obtendrás una línea definida por dos puntos, y simplemente Calcula el ángulo de una línea entre dos puntos con respecto a la imagen:
vectorlt; líneas;
Detectar líneas
HoughLinesP (imagen, líneas, 1) , CV_PI / 180, 50, 50, 10);
for (size_t i = 0; ilt;lines.size(); i )
{
Vec4i l = líneas[i];
/ Dibujar líneas
Puntos p1, p2;
p1 = Punto(l[0], l[1 ] );
p2 = Point(l [2], l [3]);
// Calcula el ángulo en radianes. * 180 / PI
ángulo de flotación = atan2(p1.y - p2. y, p1.x - p2.x);
.....
}