opencv最小二成拟合椭圆算法

该代码段展示了如何使用OpenCV库通过最小二乘法计算椭圆的参数。输入为样本点集合,输出为椭圆的中心坐标、长轴长度、短轴长度和旋转角度。首先,计算相关矩阵,然后通过Solve函数求解椭圆方程,最终得出椭圆的几何特性。
摘要由CSDN通过智能技术生成

//传入样本点,返回椭圆的5个参数

vector<double> getEllipsepar(vector<CvPoint> vec_point)
{
    vector<double> vec_result;
    double  x3y1 = 0,x1y3= 0,x2y2= 0,yyy4= 0, xxx3= 0,xxx2= 0,x2y1= 0,yyy3= 0,x1y2= 0 ,yyy2= 0,x1y1= 0,xxx1= 0,yyy1= 0;

 

    int N = vec_point.size();
    cout << N << endl;
    for (int m_i = 0;m_i < N ;++m_i )
    {
        double xi = vec_point[m_i].x ;
        double yi = vec_point[m_i].y;
        x3y1   += xi*xi*xi*yi ;
        x1y3   += xi*yi*yi*yi;
        x2y2   += xi*xi*yi*yi; ;
        yyy4   +=yi*yi*yi*yi;
        xxx3   += xi*xi*xi ;
        xxx2   += xi*xi ;
        x2y1 += xi*xi*yi;

        x1y2 += xi*yi*yi;
        yyy2 += yi*yi;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值