OpenCV直線擬合
阿新 • • 發佈:2019-01-05
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