OpenCV之直线曲线拟合

直线拟合fitLine

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

points:二维点的数组或vector

line:输出直线,Vec4f (2d)或Vec6f (3d)的vector

distType:距离类型

param:距离参数

reps:径向的精度参数

aeps:角度精度参数

距离类型可取以下值:

 椭圆拟合fitEllipse

RotatedRect fitEllipse( InputArray points );

points:二维点集,要求拟合的点至少为6个点。存储在std::vector<>或者Mat

输出:RotatedRect 类型的矩形,是拟合出椭圆的最小外接矩形。

该函数使用的是最小二乘的方法进行拟合的。

多边形拟合approxPolyDP

void approxPolyDP( InputArray curve,OutputArray approxCurve,
                        double epsilon, bool closed);

curve:输入的点集
approxCurve:输出的点集,当前点集是能最小包容指定点集的。画出来即是一个多边形。
epsilon:指定的精度,也即是原始曲线与近似曲线之间的最大距离。
closed:若为true,则说明近似曲线是闭合的;反之,若为false,则断开。

该函数采用是道格拉斯-普克算法(Douglas-Peucker)来实现。

猜你喜欢

转载自blog.csdn.net/hulinhulin/article/details/133313665
今日推荐