L1 — L6分别是六对FP腔的距离,coreside_diameter.txt存储L1~L6,放在Uniformity_Test文件夹当中
十二边形所对应的六对FP腔

ax & y分别为所对应的坐标位置

椭圆的一般方程式为:Ax^2 + 2Bxy + Cy^2 + Dx + Ey + F = 0
参考:来自于维基百科的椭圆方程介绍

clear; clc; close all;
load('coreside_diameter.txt');
date = coreside_diameter(:,2);
L1 = date(1);   L2 = date(2);   L3 = date(3);
L4 = date(4);   L5 = date(5);   L6 = date(6);
ax = [L1*sin(pi/6)/2, 0, -L3*sin(pi/6)/2, -L4*cos(pi/6)/2, -L5/2, -L6*cos(pi/6)/2, -L1*sin(pi/6)/2, 0, L3*sin(pi/6)/2, L4*cos(pi/6)/2, L5/2, L6*cos(pi/6)/2];
y = [L1*cos(pi/6)/2, L2/2, L3*cos(pi/6)/2, L4*cos(pi/3)/2, 0, -L6*cos(pi/3)/2, -L1*cos(pi/6)/2, -L2/2, -L3*cos(pi/6)/2, -L4*cos(pi/3)/2, 0, L6*cos(pi/3)/2];% 设出圆锥曲线方程
F=@(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4)*x(:,1)+p(5)*x(:,2)+p(6);
% 离散数据点
for i = 1:length(y)x(i,1) = ax(i);x(i,2) = y(i);
endp0=[1 1 1 1 1 1];
% warning off
% 拟合系数,最小二乘方法
p=nlinfit(x,zeros(size(x,1),1),F,p0);
plot(x(:,1),x(:,2),'ro');
hold on;
xmin=min(x(:,1));
xmax=max(x(:,1));
ymin=min(x(:,2));
ymax=max(x(:,2));
% 作图
ezplot(@(x,y)F(p,[x,y]),[-1+xmin,1+xmax,-1+ymin,1+ymax]);
title('曲线拟合');
legend('样本点','拟合曲线')

如果ellipse的形心在原点那么它的方程式可以简化为:Ax^2 + 2Bxy + Cy^2 + f = 0

今后课题中主要使用以下代码

clear; clc; close all;
load('coreside_diameter.txt');
date = coreside_diameter(:,2);
L1 = date(1);   L2 = date(2);   L3 = date(3);
L4 = date(4);   L5 = date(5);   L6 = date(6);
ax = [L1*sin(pi/6)/2, 0, -L3*sin(pi/6)/2, -L4*cos(pi/6)/2, -L5/2, -L6*cos(pi/6)/2, -L1*sin(pi/6)/2, 0, L3*sin(pi/6)/2, L4*cos(pi/6)/2, L5/2, L6*cos(pi/6)/2];
y = [L1*cos(pi/6)/2, L2/2, L3*cos(pi/6)/2, L4*cos(pi/3)/2, 0, -L6*cos(pi/3)/2, -L1*cos(pi/6)/2, -L2/2, -L3*cos(pi/6)/2, -L4*cos(pi/3)/2, 0, L6*cos(pi/3)/2];% 设出圆锥曲线方程
F=@(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4);
% 离散数据点
for i = 1:length(y)x(i,1) = ax(i);x(i,2) = y(i);
endp0=[1 1 1 1];
% warning off
% 拟合系数,最小二乘方法
p=nlinfit(x,zeros(size(x,1),1),F,p0);
plot(x(:,1),x(:,2),'ro');
hold on;
xmin=min(x(:,1));
xmax=max(x(:,1));
ymin=min(x(:,2));
ymax=max(x(:,2));
% 作图
ezplot(@(x,y)F(p,[x,y]),[-1+xmin,1+xmax,-1+ymin,1+ymax]);
title('曲线拟合');
legend('样本点','拟合曲线')

Fitting ellipse相关推荐

  1. OpenCV 1.x 2.x 编程简介(矩阵/图像/视频的基本读写操作)

    OpenCV 编程简介(矩阵/图像/视频的基本读写操作) Introduction to programming with OpenCV OpenCV编程简介 作者: Gady Agam Depart ...

  2. OpenCV 编程简单介绍(矩阵/图像/视频的基本读写操作)

    PS. 因为csdn博客文章长度有限制,本文有部分内容被截掉了. 在OpenCV中文站点的wiki上有可读性更好.而且是完整的版本号,欢迎浏览. OpenCV Wiki :<OpenCV 编程简 ...

  3. (4)图像增强- Part1. 对比度增强

    Image Enhancement 导读: 本章主要总结了图像增强技术中的点处理技术,包括灰度直方图的获取.直方图均衡化.直方图规范化和对比度调整等内容.C++和Python语言环境下,使用OpenC ...

  4. 【VR】手柄定位技术

    1. 关于Quest Pro头显.控制器的规格分析(终篇)及Quest 3分辨率 (2022年07月29日)被认为是"Quest Pro"的高端一体机Project Cambria ...

  5. Matlab拟合椭圆

    1 简介 Matlab拟合椭圆​ 2 完整代码 function result = ellipseFit4HC(x,y,options)%ellipseFit4HC Estimates the ell ...

  6. Ransac拟合椭圆

    一.Ransac算法介绍 RANSAC(RAndom SAmple Consensus,随机采样一致)最早是由Fischler和Bolles在SRI上提出用来解决LDP(Location Determ ...

  7. opencv超好学习资料

    日志 返回日志列表 opencv超好学习资料 2010-9-25 13:40阅读(0) 赞赞赞赞 转载 分享 评论 复制地址 举报 编辑 上一篇 |下一篇:opencv安装方法 w... v首页 资讯 ...

  8. OpenCV椭圆拟合ellipse fitting的实例(附完整代码)

    OpenCV椭圆拟合ellipse fitting的实例 OpenCV椭圆拟合ellipse fitting的实例 OpenCV椭圆拟合ellipse fitting的实例 #include &quo ...

  9. 基于直接最小二乘的椭圆拟合(Direct Least Squares Fitting of Ellipses)

    算法思想: 算法通过最小化约束条件4ac-b^2 = 1,最小化距离误差.利用最小二乘法进行求解,首先引入拉格朗日乘子算法获得等式组,然后求解等式组得到最优的拟合椭圆. 算法的优点: a.椭圆的特异性 ...

最新文章

  1. 揭示生命的奥秘——生物信息学
  2. eclipse上项目如何在resin中部署
  3. 将文件转成byte[]文件属组
  4. Fast RCNN 训练自己数据集 (1编译配置)
  5. 置顶 | 2019学习单/读书单(dream a little dream)
  6. UVa1607 poj1435 UVaLive1686 Gates
  7. 【BO】WEBI文件打开时提示Illegal access错误
  8. 作业调度框架 Quartz.NET 2.0 StepByStep
  9. 华为nova5系列正式发布:售价2799元起
  10. mysql parameters_MySqlCommand Command.Parameters.Add已过时?mysql-问答-阿里云开发者社区-阿里云...
  11. Java-java.io.BufferedInputStream
  12. iOS自动布局之autoresizingi
  13. 小乌龟与git配置使用
  14. 3D数学基础(二)| 向量
  15. 5KPlayer:跨平台支持 AirPlay 无线串流 / 下载在线视频
  16. 使用咕咕机打印有道词典中的单词
  17. Linux桌面词典 GoldenDict词典
  18. ICTCLAS 汉语词性标注集 中科院
  19. UltraISO对光盘镜像的常用操作
  20. 计算机机房使用多大的光纤引入,数据中心机房采用光纤网络布线案例解析

热门文章

  1. 状态机设计模式(java中的使用)
  2. 我国目前大数据产业发展现状
  3. 读写csv,xlsx文件的工具类
  4. 【51nod】2059 上台阶 easy
  5. 粒子群算法(PSO)的Python实现(求解多元函数的极值)
  6. shiro登陆错误回顾
  7. android手机病毒原理,安卓手机病毒的原理是什么
  8. 代谢组学资讯,全球爆火的ChatGPT,是如何看待三阴性乳腺癌的?
  9. | JavaScript脚本注入,完成Selenium 无法做到的那些事
  10. python numpy 实现与(and),非与(not),或(or),异或(xor)逻辑运算!