opencv直线拟合cv::fitLine()

通过2D或者2D点集拟合直线

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

@param points Input vector of 2D or 3D points, stored in std::vector<> or Mat.
@param line Output line parameters. In case of 2D fitting, it should be a vector of 4 elements
(like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line and
(x0, y0) is a point on the line. In case of 3D fitting, it should be a vector of 6 elements (like
Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector collinear to the line
and (x0, y0, z0) is a point on the line.
@param distType Distance used by the M-estimator, see cv::DistanceTypes
@param param Numerical parameter ( C ) for some types of distances. If it is 0, an optimal value
is chosen.
@param reps Sufficient accuracy for the radius (distance between the coordinate origin and the line).
@param aeps Sufficient accuracy for the angle. 0.01 would be a good default value for reps and aeps.

 可供选的距离类型如下表所示,ri表示的是输入的点到直线的距离:

M估计

参考:M-estimators

原文地址:https://www.cnblogs.com/larry-xia/p/10062533.html