Fitting ellipse
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相关推荐
- OpenCV 1.x 2.x 编程简介(矩阵/图像/视频的基本读写操作)
OpenCV 编程简介(矩阵/图像/视频的基本读写操作) Introduction to programming with OpenCV OpenCV编程简介 作者: Gady Agam Depart ...
- OpenCV 编程简单介绍(矩阵/图像/视频的基本读写操作)
PS. 因为csdn博客文章长度有限制,本文有部分内容被截掉了. 在OpenCV中文站点的wiki上有可读性更好.而且是完整的版本号,欢迎浏览. OpenCV Wiki :<OpenCV 编程简 ...
- (4)图像增强- Part1. 对比度增强
Image Enhancement 导读: 本章主要总结了图像增强技术中的点处理技术,包括灰度直方图的获取.直方图均衡化.直方图规范化和对比度调整等内容.C++和Python语言环境下,使用OpenC ...
- 【VR】手柄定位技术
1. 关于Quest Pro头显.控制器的规格分析(终篇)及Quest 3分辨率 (2022年07月29日)被认为是"Quest Pro"的高端一体机Project Cambria ...
- Matlab拟合椭圆
1 简介 Matlab拟合椭圆 2 完整代码 function result = ellipseFit4HC(x,y,options)%ellipseFit4HC Estimates the ell ...
- Ransac拟合椭圆
一.Ransac算法介绍 RANSAC(RAndom SAmple Consensus,随机采样一致)最早是由Fischler和Bolles在SRI上提出用来解决LDP(Location Determ ...
- opencv超好学习资料
日志 返回日志列表 opencv超好学习资料 2010-9-25 13:40阅读(0) 赞赞赞赞 转载 分享 评论 复制地址 举报 编辑 上一篇 |下一篇:opencv安装方法 w... v首页 资讯 ...
- OpenCV椭圆拟合ellipse fitting的实例(附完整代码)
OpenCV椭圆拟合ellipse fitting的实例 OpenCV椭圆拟合ellipse fitting的实例 OpenCV椭圆拟合ellipse fitting的实例 #include &quo ...
- 基于直接最小二乘的椭圆拟合(Direct Least Squares Fitting of Ellipses)
算法思想: 算法通过最小化约束条件4ac-b^2 = 1,最小化距离误差.利用最小二乘法进行求解,首先引入拉格朗日乘子算法获得等式组,然后求解等式组得到最优的拟合椭圆. 算法的优点: a.椭圆的特异性 ...
最新文章
- 揭示生命的奥秘——生物信息学
- eclipse上项目如何在resin中部署
- 将文件转成byte[]文件属组
- Fast RCNN 训练自己数据集 (1编译配置)
- 置顶 | 2019学习单/读书单(dream a little dream)
- UVa1607 poj1435 UVaLive1686 Gates
- 【BO】WEBI文件打开时提示Illegal access错误
- 作业调度框架 Quartz.NET 2.0 StepByStep
- 华为nova5系列正式发布:售价2799元起
- mysql parameters_MySqlCommand Command.Parameters.Add已过时?mysql-问答-阿里云开发者社区-阿里云...
- Java-java.io.BufferedInputStream
- iOS自动布局之autoresizingi
- 小乌龟与git配置使用
- 3D数学基础(二)| 向量
- 5KPlayer:跨平台支持 AirPlay 无线串流 / 下载在线视频
- 使用咕咕机打印有道词典中的单词
- Linux桌面词典 GoldenDict词典
- ICTCLAS 汉语词性标注集 中科院
- UltraISO对光盘镜像的常用操作
- 计算机机房使用多大的光纤引入,数据中心机房采用光纤网络布线案例解析
热门文章
- 状态机设计模式(java中的使用)
- 我国目前大数据产业发展现状
- 读写csv,xlsx文件的工具类
- 【51nod】2059 上台阶 easy
- 粒子群算法(PSO)的Python实现(求解多元函数的极值)
- shiro登陆错误回顾
- android手机病毒原理,安卓手机病毒的原理是什么
- 代谢组学资讯,全球爆火的ChatGPT,是如何看待三阴性乳腺癌的?
- | JavaScript脚本注入,完成Selenium 无法做到的那些事
- python numpy 实现与(and),非与(not),或(or),异或(xor)逻辑运算!