MATLAB拟合圆 及 得到圆的半径

hough变换或者二乘法拟合法都可以但是我不会用大侠们帮帮忙在此谢过!function[hough_space,hough_circle,para]=hough_circ... hough变换或者二乘法拟合法都可以 但是我不会用 大侠们帮帮忙 在此谢过!
function [hough_space,hough_circle,para] = hough_circle(BW,step_r,step_angle,r_min,r_max,p);这是hough变换检测圆的函数,不明白里面的参数的意思,特别是r_min ,r_max代表什么意思 这些参数的设置有哪些要求
展开
 我来答
帐号已注销
2020-10-17 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:159万
展开全部

定点(2,3)半径2.03,又边要超出边界0.03,画面调整成为高度(3-2.03),宽2,最右下角的点就是圆的一边顶点,再画面调整为高3,宽2,这个点是圆心;

调整画面为高3宽(2+2.03),这个时候最右下角的点是圆的右面顶点,现在圆心定啦,上顶点和右顶点也定,知道这3个点就能画出想要的圆。

输入的离散点在

变量X中

X=[x1 y1 z1;

x2 y2 z2;

是一个n行,3列的矩阵,1,2,3列分别为x,y,z坐标

p0=mean(X);%以重心为初始圆心

r02=mean(sqrt(sum((X-repmat(p0,[size(X,1) 1])).^2,2)));%以到重心的平均距离为初始半径

f=@(p)(X(:,1)-p(1)).^2+(X(:,2)-p(2)).^2+(X(:,3)-p(3)).^2-p(4)^2;

p=lsqnonlin(f,[p0 r02]);

x0=p(1);y0=p(2);z0=p(3);

radii=abs(p(4));

x0 y0 z0 为圆心坐标

radii为半径。

扩展资料:

如果物体没有中心,则该术语可能指其周长,其外接圆的半径或外接球体。 在任一情况下,半径可以大于直径的一半,通常将其定义为图中任何两个点之间的最大距离。 几何图形的半径通常是其中包含的最大圆或球的半径。 环,管或其他中空物体的内半径是其空腔的半径。

对于常规多边形,半径与其周长相同。正多边形的内半径也称为心距。在图论中,图的半径是从u到图的任何其他顶点的最大距离的所有顶点u的最小值。

参考资料来源:百度百科-圆心

matlab爱好者
2020-12-26 · matlab编程与科研资料分享,欢迎关注!
matlab爱好者
采纳数:16 获赞数:28

向TA提问 私信TA
展开全部

本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b1799c6d7e
2014-05-01 · 超过20用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:36.4万
展开全部
r_min是最小半径 ,r_max是最大半径
更多追问追答
追问
这个最小半径和最大半径是怎么设置的呢 根据什么来设置这个参数
追答
function 
[hough_space,hough_circle,para] =
hough_circle(BW,step_r,step_angle,r_min,r_max,p) input BW:二值图像; step_r:检测的圆半径步长
step_angle:角度步长,单位为弧度 r_min:最小圆半径 r_max:最大圆半径 p:阈值,0,1之间的数 output
hough_space:参数空间,h(a,b,r)表示圆心在(a,b)半径为r的圆上的点数 hough_circl:二值图像,检测到的圆
para:检测到的圆的圆心、半径 [m,n] = size(BW) size_r = round((r_max-r_min)/step_r)+1
size_angle = round(2*pi/step_angle) hough_space = zeros(m,n,size_r)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式