matlab求圆半径首先是画一个256*256bw 半径r=64的一个黑白圆圈,在产生这个圆之后,如何运用程序求出这个圆
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/20 03:19:07
matlab求圆半径
首先是画一个256*256bw 半径r=64的一个黑白圆圈,在产生这个圆之后,如何运用程序求出这个圆的周长,并且误差与实际误差越小越好.希望给出具体的matlab程序,
刚注册,所以分不多,希望各位大侠能帮下忙 ,另外补充下,不是直接调用圆周长公式求,这样没意义,而是用图像处理方法求
首先是画一个256*256bw 半径r=64的一个黑白圆圈,在产生这个圆之后,如何运用程序求出这个圆的周长,并且误差与实际误差越小越好.希望给出具体的matlab程序,
刚注册,所以分不多,希望各位大侠能帮下忙 ,另外补充下,不是直接调用圆周长公式求,这样没意义,而是用图像处理方法求
![matlab求圆半径首先是画一个256*256bw 半径r=64的一个黑白圆圈,在产生这个圆之后,如何运用程序求出这个圆](/uploads/image/z/7009390-46-0.jpg?t=matlab%E6%B1%82%E5%9C%86%E5%8D%8A%E5%BE%84%E9%A6%96%E5%85%88%E6%98%AF%E7%94%BB%E4%B8%80%E4%B8%AA256%2A256bw+%E5%8D%8A%E5%BE%84r%3D64%E7%9A%84%E4%B8%80%E4%B8%AA%E9%BB%91%E7%99%BD%E5%9C%86%E5%9C%88%2C%E5%9C%A8%E4%BA%A7%E7%94%9F%E8%BF%99%E4%B8%AA%E5%9C%86%E4%B9%8B%E5%90%8E%2C%E5%A6%82%E4%BD%95%E8%BF%90%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%B1%82%E5%87%BA%E8%BF%99%E4%B8%AA%E5%9C%86)
楼主做人要厚道,这可是我辛辛苦苦帮你做的.
I=ones(256,256);
t=linspace(0,2*pi,5000);
x=uint8(128+64*cos(t));
y=uint8(128+64*sin(t));
I1=I;
for i=1:5000
I1(x(i),y(i))=0;
end
figure,imshow(I1)
index=find(I1==0);
len=length(index);
x1=mod(index(1),256); % 随便选取圆上三个点
y1=index(1)/256;
x2=mod(index(floor(len/3)),256);
y2=index(floor(len/3))/256;
x3=mod(index(floor(2*len/3)),256);
y3=index(floor(2*len/3))/256;
if ((y1==y2) && (y2==y3)) || ((x1==x2) && (x2==x3))
x0=0;
y0=0;
r0=0;
return;
else if y1~=y2 && y1 =y2
if (x1-x2)/(y1-y2)==(x1-x3)/(y1-y3)
x0=0;
y0=0;
r0=0;
return;
end
end
end
a=2*(x2-x1);
b=2*(y2-y1);
c=x2*x2+y2*y2-x1*x1-y1*y1;
d=2*(x3-x2);
e=2*(y3-y2);
f=x3*x3+y3*y3-x2*x2-y2*y2;
x0=(b*f-e*c)/(b*d-e*a+eps) % 求圆心
y0=(d*c-a*f)/(b*d-e*a+eps)
r0=sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)) % 求半径
hold on
plot(x0,y0,'*r','LineWidth',2); %画圆心与半径
line([x0 x2],[y0 y2]);
str=num2str(r0);
text(x2+2,y2,'R=');
text(x2+15,y2,str);
运行结果:
x0 =
128.1562
y0 =
127.2148
r0 =
64.2658
I=ones(256,256);
t=linspace(0,2*pi,5000);
x=uint8(128+64*cos(t));
y=uint8(128+64*sin(t));
I1=I;
for i=1:5000
I1(x(i),y(i))=0;
end
figure,imshow(I1)
index=find(I1==0);
len=length(index);
x1=mod(index(1),256); % 随便选取圆上三个点
y1=index(1)/256;
x2=mod(index(floor(len/3)),256);
y2=index(floor(len/3))/256;
x3=mod(index(floor(2*len/3)),256);
y3=index(floor(2*len/3))/256;
if ((y1==y2) && (y2==y3)) || ((x1==x2) && (x2==x3))
x0=0;
y0=0;
r0=0;
return;
else if y1~=y2 && y1 =y2
if (x1-x2)/(y1-y2)==(x1-x3)/(y1-y3)
x0=0;
y0=0;
r0=0;
return;
end
end
end
a=2*(x2-x1);
b=2*(y2-y1);
c=x2*x2+y2*y2-x1*x1-y1*y1;
d=2*(x3-x2);
e=2*(y3-y2);
f=x3*x3+y3*y3-x2*x2-y2*y2;
x0=(b*f-e*c)/(b*d-e*a+eps) % 求圆心
y0=(d*c-a*f)/(b*d-e*a+eps)
r0=sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)) % 求半径
hold on
plot(x0,y0,'*r','LineWidth',2); %画圆心与半径
line([x0 x2],[y0 y2]);
str=num2str(r0);
text(x2+2,y2,'R=');
text(x2+15,y2,str);
运行结果:
x0 =
128.1562
y0 =
127.2148
r0 =
64.2658
matlab求圆半径首先是画一个256*256bw 半径r=64的一个黑白圆圈,在产生这个圆之后,如何运用程序求出这个圆
已知一个圆的半径r=12厘米,求出这个圆的周长
如果一个圆的半径是R厘米,且5:R=R:7,求这个圆的面积
一个圆的半径是2厘米,求出他的面积.若把这个圆的半径增加二
在一个边长8厘米的正方形里面画一个半径最大的圆,这个圆的半径是【 】厘米
已知一个圆的半径为R,求这个圆的内切正6边形的周长和半径
一个圆的半径是5cm,在这个圆里画一个最大的正方形,求这个正方形的面积.
画一个半径是2厘米的圆,并用字母标出圆心、半径、直径.再求出这个圆的周长和面积.
一个半径为r的圆内切于一个等腰直角三角形,一个半径为R的圆外接于这个三角形,那么为什么R/r等于2+√2?
一个圆半径6cm,求这个圆的面积
设圆半径r=1.5,用程序求出圆的周长 面积
一个圆的半径是R厘米,并且4比R=R比9,那么这个圆的周长是?面积是?