如何确定HoughLines函数使用OpenCV找到的线的角度
1个回答
展开全部
解决方案
如果使用HoughLines函数,它将提供已经由两个参数:theta和rho定义的行,如
向量< Vec2f>线;
//检测行
HoughLines(image,lines,1,CV_PI / 180,150,0,0);
//获取行
for(size_t i = 0; i< lines.size(); i ++)
{
float rho = lines [i] [0],theta = lines [i] [1];
....
}
或
HoughLinesP函数,你将得到由两点定义的线,你只需要计算两点之间相对于图像的线的角度:
vector< Vec4i>线;
//检测行
HoughLinesP(image,lines,1,CV_PI / 180,50,50,10);
for(size_t i = 0; i< lines.size(); i ++)
{
Vec4i l = lines [i];
//绘制线条
点p1,p2;
p1 = Point(l [0],l [1]);
p2 = Point(l [2],l [3]);
//以弧度计算角度,如果你需要它的角度只是做角度* 180 / PI
float angle = atan2(p1.y - p2.y,p1.x - p2.x);
.......
}
如果使用HoughLines函数,它将提供已经由两个参数:theta和rho定义的行,如
向量< Vec2f>线;
//检测行
HoughLines(image,lines,1,CV_PI / 180,150,0,0);
//获取行
for(size_t i = 0; i< lines.size(); i ++)
{
float rho = lines [i] [0],theta = lines [i] [1];
....
}
或
HoughLinesP函数,你将得到由两点定义的线,你只需要计算两点之间相对于图像的线的角度:
vector< Vec4i>线;
//检测行
HoughLinesP(image,lines,1,CV_PI / 180,50,50,10);
for(size_t i = 0; i< lines.size(); i ++)
{
Vec4i l = lines [i];
//绘制线条
点p1,p2;
p1 = Point(l [0],l [1]);
p2 = Point(l [2],l [3]);
//以弧度计算角度,如果你需要它的角度只是做角度* 180 / PI
float angle = atan2(p1.y - p2.y,p1.x - p2.x);
.......
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询