拟合直线,fitLine函数(所有输入轮廓点集拟合成一条直线)
Vec4f lLine;
fitLine(counters[0], lLine, DIST_L2, 0, 0.01, 0.01);
//求拟合出来直线的k和b
float k = lLine[1]/lLine[0];
float b = lLine[3] - k*lLine[2];
//画出拟合的直线
Point p1, p2;
p1.x = 0;
p1.y = b;
p2.x = 640;
p2.y = k*p2.x + b;
cv::line(frame, p1, p2, Scalar(0, 0, 255), 4);//4为粗细
其中lLine[1]/lLine[0]得出的是斜率;
(lLine[2], lLine[3])是拟合出直线上的一点;