Red de conocimiento informático - Conocimiento informático - Cómo usar OpenCV para determinar el ángulo de una línea encontrada con la función HoughLines

Cómo usar OpenCV para determinar el ángulo de una línea encontrada con la función HoughLines

Solución

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);

.....

}