MATLAB--椭圆拟合算法

这篇具有很好参考价值的文章主要介绍了MATLAB--椭圆拟合算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Abstract

This code aims for ellipse fitting but only contains the center’s calculation.

CODE

function [x0,y0] = fitellipseDirect(x,y)
    n = size(x,1);
    centerx = mean(x);
    centery = mean(y);
    A = zeros(n,6);
    scale =  double(0.01);
    for i = 1:n
        px =  double((x(i) - centerx)*scale);
        py =  double((y(i) - centery)*scale);
        A(i,1) =  double(px^2);
        A(i,2) =  double(px*py);
        A(i,3) =  double(py^2);
        A(i,4) =  double(px);
        A(i,5) =  double(py);
        A(i,6) = 1.0;
    end

    DM =  double(A' * A);
    DM =  double(DM/n);

    S1 =  DM(1:3,1:3);
    S2 =  DM(1:3,4:6);
    S2T =  DM(4:6,1:3);
    S3 =  DM(4:6,4:6);

    C1_inv = [0,   0,    0.5;
          0,   -1,     0;
          0.5, 0.0,  0.0];
    M =  double(C1_inv*(S1 - S2*inv(S3)*S2T));
    [v,D] = eig(M);
    index = 1;
    if D(1,1)>0
        index = 1;
    elseif D(2,2)>0
        index = 2;
    elseif D(3,3)>0
        index = 3;
    end

    vec =  [v(1,index);v(2,index);v(3,index)];
    theta_1 =  double(vec);
    theta_2 =  double(-inv(S3)*S2T*theta_1);

    b2_4ac =  double(theta_1(2)*theta_1(2) - 4*theta_1(1)*theta_1(3));
    cd_be =  double(2*theta_1(3)*theta_2(1) - theta_1(2)*theta_2(2));
    ae_bd =  double(2*theta_1(1)*theta_2(2) - theta_1(2)*theta_2(1));
	x0 =  double((cd_be/b2_4ac/scale) + centerx);
	y0 =  double((ae_bd/b2_4ac/scale) + centery); 

    theta = [theta_1(1),theta_1(2),theta_1(3),theta_2(1),theta_2(2),theta_2(3)];

end

使用:

[x y] = fitellipseDirect(xcell,ycell);

xcell为x坐标数组,ycell为y坐标数组;文章来源地址https://www.toymoban.com/news/detail-854865.html

到了这里,关于MATLAB--椭圆拟合算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 回归拟合 | 灰狼算法优化核极限学习机(GWO-KELM)MATLAB实现

    这周有粉丝私信想让我出一期GWO-KELM的文章,因此乘着今天休息就更新了(希望不算晚) 作者在前面的文章中介绍了ELM和KELM的原理及其实现,ELM具有训练速度快、复杂度低、克服了传统梯度算法的局部极小、过拟合和学习率的选择不合适等优点,而KELM则利用了核学习的方法,用

    2024年02月09日
    浏览(34)
  • MATLAB—绘制椭圆

    绘制圆,变换成椭圆(这里需要一个变换矩阵)。 MATLAB中的绘制:使用参数方程的形式。 figure(1) plot([-5 5],[0 0],\\\'k\\\',\\\'LineWidth\\\',1);hold on;% 画坐标轴 plot([0 0],[-5 5],\\\'k\\\',\\\'LineWidth\\\',1);hold on; theta=0:pi/20:2*pi;% 参数theta a=2;b=3;% 长短轴 x1=a*cos(theta) +1;% 偏置 y1=b*sin(theta) +1; plot(x1,y1,\\\'-\\\');hold on;

    2024年02月07日
    浏览(34)
  • 【Matlab】音频信号谱分析及椭圆滤波处理

    一个使用matlab对音频信号进行频谱分析及滤波处理的学习笔记,本文使用的是椭圆滤波器。 音频下载 demo.mp3 读取音频信号进行傅里叶变换 结果如下 在谱分析中使用matlab自带的快速傅里叶变换函数进行变换 在IIR滤波器设计中使用椭圆低通滤波器 椭圆滤波器使用 入门级教程

    2024年02月12日
    浏览(33)
  • 【无标题】Matlab之annotation函数——创建图形注释(箭头、椭圆、矩形)

    应用1:创建文本箭头注释 创建一个简单线图并向图窗添加文本箭头。用归一化的 图窗坐标 指定文本箭头位置,起点为 (0.3,0.6),终点为 (0.5,0.5)。通过设置 String 属性指定文本说明。 备注1:annotation(lineType,x,y) 创建一个在当前图窗中的两个点之间延伸的线条或箭头注释。将

    2024年02月19日
    浏览(27)
  • 基于 Matlab 的方差-协方差矩阵可视化表示(椭圆、椭球)

    因为在学习模糊度固定的时候涉及了『搜索椭球』这一概念,很想知道是如何用椭球来表示搜索空间的。出于好奇,在查阅了一些相关文献,终于解决了笔者的疑惑,此篇博文就简要记录一下如何根据协方差矩阵来绘制椭球。 下面是得到的一些结论: 对协方差矩阵进行奇异

    2024年02月06日
    浏览(60)
  • 霍夫变换椭圆检测(matlab仿真与图像处理系列第2期)

    椭圆检测是图像处理中的一个重要问题,其目的是从图像中检测出可能存在的椭圆。在实际的应用中,椭圆常常被用来描述物体的形状或者得到物体的尺寸信息。 传统的椭圆检测方法通常采用二维Hough变换,在求解过程中需要处理大量的数据,并且计算复杂度高,导致速度较

    2024年02月11日
    浏览(32)
  • 【MATLAB基础绘图第4棒】绘制椭圆形相关系矩阵图

    数据及代码下载: 下载专区-《MATLAB统计分析与应用:40个案例分析》程序与数据 绘图函数: 数据如下: MATLAB代码如下: 运行上述命令得出变量间的相关系数矩阵R、线性相关性检验的p值矩阵P以及相关系数矩阵图。成图如下所示: 图形参数修改可根据需要对 matrixplot函数 进

    2024年02月04日
    浏览(55)
  • 【MATLAB】matlab曲线拟合与矩阵计算技巧

    目录 1.曲线拟合定义 2.数据预处理 3.数据拟合 4.数据拟合matlab编程例子 5.数据拟合函数表 6.matlab中常用插值方法 7.矩阵的特征值分解         在实际工程应用和科学实践中,经常需要寻求两个(或多个)变量间的关系,而实际去只能 通过观测得到一些离散的数据点。针对这

    2024年02月02日
    浏览(36)
  • MATLAB - 评估拟合优度、评价拟合效果

    用一个或多个模型拟合数据后,您应该评估拟合的好坏。第一步应该是目测 \\\"曲线拟合器 \\\"应用程序中显示的拟合曲线。除此之外,工具箱还提供了这些方法来评估线性和非线性参数拟合的拟合优度: 拟合优度统计 残差分析 置信度和预测边界 正如统计文献中常见的那样,\\\"拟

    2024年03月28日
    浏览(27)
  • MATLAB 曲线拟合

    MATLAB 曲线拟合 eg: 与数据插值类似,曲线拟合也是一种函数逼近的方法。 最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小优化误差的平方和来寻找数据的最佳函数匹配。 polyfit():多项式拟合系数 功能:求得最小二乘拟合多项式系数 调用格式: p=polyfit(X,Y,m

    2024年02月06日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包