Opencv直线拟合

 

C++: void fitLine( InputArray points, OutputArray line, int distType, doubleparam, double reps, double aeps )

 

points:存储点序列

line:2D情况下:Line的类型为4个浮点型的数组(vx, vy, v0, y0),例如Vec4f,其中(vx, vy)是单位向量(正则化后的斜率向量),(x0, y0)是直线经过的某点坐标。3D情况下:Line为6个浮点型的数组(vx, vy, vz, x0, y0, z0),例如:Vec6f,其中(vx, vy, vz)是单位向量,(x0, y0, z0)。

disType:fitLine 通过求 sumi:ρ(ri) 的最小值方法,用 2D 或 3D 点集拟合直线,其中 ri 是第 i 个点到直线的距离, ρ(r) 是下面的距离函数之一:

dist_type=CV_DIST_L2 (L2): ρ(r)=r2/2 (最简单和最快的最小二乘法)

dist_type=CV_DIST_L1 (L1): ρ(r)=r

dist_type=CV_DIST_L12 (L1-L2): ρ(r)=2?[sqrt(1+r2/2) - 1]

dist_type=CV_DIST_FAIR (Fair): ρ(r)=C2?[r/C - log(1 + r/C)], C=1.3998

dist_type=CV_DIST_WELSCH (Welsch): ρ(r)=C2/2?[1 - exp(-(r/C)2)], C=2.9846

dist_type=CV_DIST_HUBER (Huber): ρ(r)= r2/2, if r < C; C?(r-C/2),otherwise; C=1.345

param:某些距离的数字参数。如果是0,自动选择最佳值。

reps:半径精度(坐标原点到直线的距离)。

aeps:角度的精度。对于reps和aeps一般设置为0.01。



                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laboirousbee

你的鼓励是我创作的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值