您的位置:首页 > 运维架构

OpenCV直线拟合

2016-05-09 09:52 225 查看
——摘抄自http://blog.csdn.net/liyuanbhu/article/details/50193947

OpenCV 提供的直线拟合函数。函数原型如下:

void fitLine( InputArray points,
OutputArray line,
int distType,
double param,
double reps,
double aeps );


distType 指定拟合函数的类型,可以取 CV_DIST_L2、CV_DIST_L1、CV_DIST_L12、CV_DIST_FAIR、CV_DIST_WELSCH、CV_DIST_HUBER。

param 就是 CV_DIST_FAIR、CV_DIST_WELSCH、CV_DIST_HUBER 公式中的C。如果取 0,则程序自动选取合适的值。

reps 表示直线到原点距离的精度,建议取 0.01。

aeps 表示直线角度的精度,建议取 0.01。

计算出的直线信息存放在 line 中,为 cv::Vec4f 类型。line[0]、line[1] 存放的是直线的方向向量。line[2]、line[3] 存放的是直线上一个点的坐标。

如果直线用 y=kx+b 来表示,那么 k = line[1]/line[0],b = line[3] - k * line[2]。

如果直线用 ρ=xcosθ+ysinθ 来表示, 那么 θ=arctank+π2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: