本文介绍了如何确定HoughLines函数使用OpenCV找到的线的角度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在OpenCV中使用HoughLines函数,可以确定结果线相对于图像底部的角度。

Using the HoughLines function in OpenCV, is it possible to determine the angle of a resulting line relative to the base of the image?

推荐答案

如果使用HoughLines函数,它将提供已经由两个参数:theta和rho定义的行,如

If you use HoughLines function, it will provide you lines already defined by two parameters: theta and rho, as

vector<Vec2f> lines;
// detect lines
HoughLines(image, lines, 1, CV_PI/180, 150, 0, 0 );

// get lines
for( size_t i = 0; i < lines.size(); i++ )
{
    float rho = lines[i][0], theta = lines[i][1];
   ....
}


HoughLinesP函数,你将得到由两点定义的线,你只需要计算两点之间相对于图像的线的角度:

Orif you apply HoughLinesP function, you will get lines defined by two points, you just need to calculate the angle of line between two points with regard to the image, as:

vector<Vec4i> lines;
// detect the lines
HoughLinesP(image, lines, 1, CV_PI/180, 50, 50, 10 );
for( size_t i = 0; i < lines.size(); i++ )
{
    Vec4i l = lines[i];
    // draw the lines

    Point p1, p2;
    p1=Point(l[0], l[1]);
    p2=Point(l[2], l[3]);
    //calculate angle in radian,  if you need it in degrees just do angle * 180 / PI
    float angle = atan2(p1.y - p2.y, p1.x - p2.x);
  .......
}

这篇关于如何确定HoughLines函数使用OpenCV找到的线的角度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 02:24