(一)知识点
毕竟就是将一个曲线用折线逼近出来
(二)API
①approxPolyDP()
void approxPolyDP( InputArray curve,
OutputArray approxCurve,
double epsilon, bool closed );
参数解释:(来源于 OpenCV中approxPolyDP()函数 - Banisher - 博客园 (cnblogs.com)
InputArray curve:输入曲线,数据类型可以为vector<Point>。
OutputArray approxCurve:输出折线,数据类型可以为vector<Point>。
double epsilon:判断点到相对应的line segment 的距离的阈值。(距离大于此阈值则舍弃,小于此阈值则保留,epsilon越小,折线的形状越“接近”曲线。但是也不是越小越好,会有副作用)
bool closed:曲线是否闭合的标志位。
▲输出的approxCurve包含逼近折线的轮廓信息,其中approxCurve.rows表示折线拐点信息,approxCurve.cols表示这种逼近轮廓的个数
②fitEllipse()【利用最小二乘法原理(▼)围绕一组 2D 点拟合椭圆。】
RotatedRect fitEllipse( InputArray points );
参数详解:
points :输入一个2D点集
返回一个RotatedRect:刻有拟合椭圆的矩形OpenCV: cv::RotatedRect Class Reference
(三)代码展示
①轮廓逼近与绘制
②轮廓椭圆拟合
(四)运行效果