使用一组坐标信息拟合圆(matlab)

2023-05-16

详细原理参考MATLAB圆拟合

圆拟合

function [xc,yc,R,a] = circfit(x,y)
%圆拟合函数
%CIRCFIT Fits a circle in x,y plane
% [XC, YC, R, A] = CIRCFIT(X,Y)
% Result is center point (yc,xc) and radius R.A is an
% optional output describing the circle’s equation:
%
% x^2+y^2+a(1)*x+a(2)*y+a(3)=0
% by Bucher izhak 25/oct/1991
n=length(x); xx=x.*x; yy=y.*y; xy=x.*y;
A=[sum(x) sum(y) n;sum(xy) sum(yy)...
sum(y);sum(xx) sum(xy) sum(x)];
B=[-sum(xx+yy) ; -sum(xx.*y+yy.*y) ; -sum(xx.*x+xy.*y)];
a=A\B;            %x = A\B 用来求解线性方程 A*x = B.  A 和 B 的行数一致.
xc = -.5*a(1);
yc = -.5*a(2);
R = sqrt((a(1)^2+a(2)^2)/4-a(3));
 
    end  

处理数据,输出图片


%输入数据
m=xlsread('input/xiwo8.xls');
x=m(:,1);
y=m(:,2);

%拟合圆
[xc,yc,R,a] = circfit(x,y);

%画图,并存图
theta=5/4*pi:0.1:7/4*pi;  
    Circle1=xc+R*cos(theta);  
    Circle2=yc+R*sin(theta);   
    plot(Circle1,Circle2,'g','linewidth',1);  
    hold on;
    %plot(x,y,'r','linewidth',1);
    scatter(x,y,2,'r');
    
    axis equal  
title(['xc=',num2str(xc),', yc=',num2str(yc),', R=',num2str(R)]);

data=[xc,yc,R]

%保存数据
% data=['xc','yc','R'];
% [M,N]=size(data);
% data_cell=num2cell(data,ones(M,1),ones(N,1));


处理结果值

m=xlsread('output/result.xls');
y1=m(:,1);
y2=m(:,2);
y3=m(:,3);
x=[1:1:8];
%xc
plot(x,y1,'r','linewidth',1);
title('xc');
waitforbuttonpress;
%yc
plot(x,y2,'g','linewidth',1);
title('yc');
waitforbuttonpress;
%R
plot(x,y3,'b','linewidth',1);
title('R');
waitforbuttonpress;

plot(x,y1,'r','linewidth',1);
% legend('xc');
hold on;
plot(x,y2,'g','linewidth',1);
% legend('yc');
hold on;
plot(x,y3,'b','linewidth',1);
legend('xc','yc','R');

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用一组坐标信息拟合圆(matlab) 的相关文章

  • MATLAB:将当前文件夹设置为脚本位置

    我在不同的文件夹中有一些脚本和数据 我使用addpath和相对路径经常 我的问题是 只有当我的当前文件夹是我执行的脚本所在的位置时 这才有效 例如 如果我执行添加路径 X 的脚本 A 然后执行位于路径 X 中的脚本 B 则 Matlab 不
  • Deploytool for MATLAB R2013b 不起作用,发生了什么变化?

    多年来我一直在使用集成deploytool为我的同事创建易于分发的 exe 文件 我几天前安装了R2013b 但无法使用deploytool不再了 尝试打包时的日志文件给出了以下内容 ant
  • 像matlab一样在python中连接数组而不知道输出数组的大小

    我正在尝试在 python 中连接数组 类似于 matlab array1 zeros 3 500 array2 ones 3 700 array array1 array2 我在 python 中做了以下操作 array1 np zero
  • 绘制布朗运动 matlab

    首先 我只想说我不太习惯使用matlab 但我需要一个作业 我应该创建一个 布朗运动 我的代码目前如下所示 clf hold on prompt Ge ett input size input prompt numParticles inp
  • 在 Pari-GP 中嵌套特定递归

    每个人 我最初在 Stackexchange 上发布了类似的问题 它已移至此处 可以在链接中找到 在 Matlab 中声明函数递归序列 https stackoverflow com questions 67146061 declaring
  • 图像处理方面的空间和时间表征有什么区别?

    我是学习图像处理的初学者 我对空间和时间表征的概念有点困惑 那么 对于空间表征来说 是不是像一张二维地图 包含了一些关于地图的统计信息呢 就时间特征而言 值是相对于时间的吗 这意味着什么以及我们为何关心 谢谢 当您在不同时间拍摄一系列图像时
  • Blob 的簇生长

    考虑以下来自 Mathworks 的图像 我已经用标签标记了斑点 L num bwlabel I 如何迭代连接所有斑点 即从一个斑点开始 找到离它最近的一个 考虑最左边的两个斑点 可以从一个斑点的许多点绘制许多条线来连接到另一个斑点blob
  • 在Matlab图例中使用Latex?

    我的 matlab 不接受我的 Latex 例如 如果我使用legend b 6 rightarrow b 7 它没有向我显示箭头 我该如何解决这个问题 尝试使用 Latex 解释器 例如 legend b 6 rightarrow b 7
  • 用于读取csv写入数组的c++程序;然后操作并打印到文本文件中(已经用 matlab 编写)

    我想知道是否有人可以帮助我 我正在尝试构建一个程序 从 csv 文件中读取大小未知的浮点数大数据块 我已经在 MATLAB 中编写了此代码 但想要编译和分发此代码 因此转向 C 我只是在学习并尝试阅读本文以开始 7 5 19892 4 23
  • 使用 scipy.io 将 python pandas dataframe 转换为 matlab 结构

    我正在尝试使用 scipy io 将 pandas 数据帧保存到 matlab mat 文件 我有以下内容 array1 np array 1 2 3 array2 np array a b c array3 np array 1 01 2
  • Matlab:如何读取以逗号作为小数分隔符的数字?

    我有很多 数十万 相当大 gt 0 5MB 的文件 其中数据是数字 但以逗号作为小数分隔符 使用像这样的外部工具对我来说是不切实际的sed s g 当分隔符是点时 我只使用textscan fid f f f 但我看不到更改小数点分隔符的选
  • MATLAB - 从目录读取文件?

    我希望从目录中读取文件并对每个文件迭代执行操作 此操作不需要更改文件 我知道我应该为此使用 for 循环 到目前为止我已经尝试过 FILES ls path to folder for i 1 size FILES 1 STRU pdbre
  • MATLAB 符号替换

    我知道在 MATLAB 中如果声明了 syms x y f x 2 y 2 grad gradient f 然后grad会存储值 2 x 2 y 如果我想评估梯度 2 2 I use subs f x y 2 2 这返回 4 4 我正在编写
  • Matlab的uicontrol在Octave中的实现?

    我正在尝试在 Octave 中运行我们实验室中使用的图形程序的 m Matlab 代码 Octave 告诉我代码中使用的函数 uicontrol 没有定义 经过一番搜索 我发现 JHandles 包有一个 uicontrol GUI 功能的
  • 如何使用最小生成树方法将边缘连接到图像中的节点

    我正在做我的手写图像图形匹配项目 我想在图形中表示给定的单词图像 我使用下面的算法 Algorithm input Binary image B Grid width w Grid height h Output Graph g V E w
  • UDP接收和发送Matlab

    我目前正在努力从外部设备接收数据包 然后将数据发送到另一个设备 我有一个工作 Simulink 模型 但我不知道如何在 Matlab 中对其进行编码 Matlab 中 UDP 接收块的参数如下图所示UDP 接收参数 https i stac
  • 了解 Matlab 中的 DEL2 函数以便用 C++ 对其进行编码

    为了用 C 编写 DEL2 matlab 函数 我需要了解该算法 我已经成功地为不在边界或边缘上的矩阵元素编写了函数 我已经看过几个有关它的主题 并通过输入 edit del2 或 type del2 来阅读 MATLAB 代码 但我不明白
  • Matlab 的 fftn 在多线程下变得更慢?

    我可以访问 12 核机器和一些严重依赖 fftn 的 matlab 代码 我想加快我的代码速度 由于 fft 可以并行化 我认为更多的内核会有所帮助 但我看到的恰恰相反 这是一个例子 X peaks 1028 ncores feature
  • 通过 h5py 将 matlab v7.3 文件读入 python numpy 数组列表

    我知道以前已经有人问过这个问题 但在我看来 仍然没有答案可以解释正在发生的事情 并且不适用于我的情况 我有一个 matlab v7 3 文件 其结构如下 gt rank lt 1x454 cell gt gt each element is
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio

随机推荐

  • git分支操作

    span class token string 39 每次提交都要手动输入用户名和密码 xff0c 若想避免这些麻烦 xff0c 可以在系统中创建 SSH 公私钥 xff0c 并将公钥放到 GitHub 指定位置 如此操作即可生成 GitH
  • shape_match

    使用OpenCV的dnn模块实时目标检测 非极大值抑制 xff08 Non Maximum Suppression xff0c NMS xff09 NMS 非极大值抑制 span class token comment test cpp s
  • C#基础语法

    Console span class token punctuation span span class token function Write span span class token punctuation span span cl
  • C# 类&对象

    输入行 xff1a span class token comment 将从控制台输入的值转换成int类型 span span class token keyword int span num span class token operato
  • C# string字符串详解

    字符串常用成员 xff1a span class token keyword string span str span class token operator 61 span Console span class token punctu
  • C#数组详解

    span class token comment 在 C 中 xff0c 将方括号放在标识符后是不合法的语法 span span class token keyword int span span class token punctuati
  • C#继承和派生

    用户在程序中会遇到 this 和 base 关键字 xff0c this 关键字代表的是当前类的对象 xff0c 而 base 关键字代表的是父类中的对象 方法隐藏和重写方法有区别吗 xff1f span class token keywo
  • C#快速入门教程

    此C 快速入门教程仅记录本人所认为的重点以及方便查阅的知识点 xff1b 系统学习请参考C语言中文网 xff08 C 教程 xff1a C 入门经典教程 xff0c 值得收藏 xff09 C 语言是微软推出的一款面向对象的编程语言 xff0
  • 2020-08-16大疆嵌入式笔试编程题:求两个不重叠连续子串的最大和

    描述 从输入数组中找出两个连续子串 xff0c 并且使这 两个连续字串和 之间的和最大 输入 xff1a 1 1 2 2 3 3 4 4 5 5 输出 xff1a 13 即 2 2 3 3 4 和 5 的和 xff08 8 43 5 61
  • Linux下安装和配置ARM交叉编译器

    本篇为基于Linux Ubuntu20 04下配置安装ARM交叉编译器 xff0c arm linux gcc交叉编译器 云盘链接放置文章底部 xff0c 有需要可自提 1 第一步 在windows下载arm linux gcc压缩包 xf
  • C#集合

    文章目录 C 集合简介C ArrayList类 xff1a 动态数组C Queue类 xff1a 队列C Stack类 xff1a 堆栈C Hashtable类 xff1a 哈希表 xff08 散列表 xff09 C SortedList类
  • C#泛型

    文章目录 C 泛型简介C 可空类型 xff1a NullableC 泛型方法的定义及使用C 泛型类的定义及使用C 泛型集合定义及使用C IComparable IComparer接口 xff1a 比较两个对象的值 泛型是在 System C
  • C#文件操作

    在前面操作变量和常量时这些值都是存放到内存中的 xff0c 当程序运行结束后使用的数据全部被删除 若需要长久保存应用程序中的数据 xff0c 可以选用文件或数据库来存储 文件通常存放到计算机磁盘上的指定位置 xff0c 可以是记事本 Wor
  • C#委托和事件

    C 语言中的委托和事件是其一大特色 xff0c 委托和事件在 Windows 窗体应用程序 ASP NET 应用程序 WPF 应用程序等应用中是最为普遍的应用 通过定义委托和事件可以方便方法重用 xff0c 并提高程序的编写效率 C 中的委
  • C#异常与调试

    在 C 语言中 xff0c 异常也称为运行时异常 xff0c 它是在程序运行过程中出现的错误 对于异常的处理需要程序员积累经验 xff0c 在可能出现异常的位置加入异常处理语句 C Exception xff1a 异常类 NET Frame
  • C#进程与线程

    在操作系统中 xff0c 每运行一个程序都会开启一个进程 xff0c 一个进程由多个线程构成 线程是程序执行流中最小的单元 在应用程序中分为单线程程序和多线程程序 单线程程序是指在一个进程空间中只有一个线程在执行 xff1b 多线程程序是指
  • WPF入门

    文章目录 WPF概述WPF简介WPF 开发环境搭建XAML语言介绍 WPF常用控件WPF常用控件分类及介绍WPF文本类型控件WPF内容控件 WPF概述 WPF简介 Windows Presentation Foundation 新一代图形用
  • 2020-08-20网易互娱一面

    1 a b两数组均升序排列 将b数组所有成员融合到a数组里面 xff08 a数组足够大 xff09 维持两个指针 xff0c 从后往前比较 2 最小生成树 3 判断栈的输出顺序 其他 线程进程 TCP UDP Linux命令
  • 2020-08-20商汤科技笔试A卷

    文章目录 1 查找 Good 字符串2 最长上升子序列 xff0c leetcode原题 3 求删除区间的最小个数 xff0c 可以使得删除后剩下的区间彼此不重叠 1 查找 Good 字符串 题目描述 给定一个字符串 xff0c 在字符串中
  • 使用一组坐标信息拟合圆(matlab)

    详细原理参考MATLAB圆拟合 圆拟合 function span class token punctuation span xc span class token punctuation span yc span class token