MATLAB拟合圆 及 得到圆的半径
function [hough_space,hough_circle,para] = hough_circle(BW,step_r,step_angle,r_min,r_max,p);这是hough变换检测圆的函数,不明白里面的参数的意思,特别是r_min ,r_max代表什么意思 这些参数的设置有哪些要求 展开
定点(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绘制散圆状态图,可用于相关科研数据绘图!
这个最小半径和最大半径是怎么设置的呢 根据什么来设置这个参数
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)