求助:画圆面?
已知:两列,50行的数组,例如
x y
0 16000
1 15000
。 。
。 。
49 15000
50 16000
想画一个圆面,其中,在直径上的数据(灰度值)按y列分布。
最后用imagesc做图
请问应该怎么画,谢谢?
clc
clear all
close all
=meshgrid(-50:49);
M=zeros(100);
M(:,:)=50000; %背景
R=(0:35) ;%直径
I=(0:1000:35000); %要填充的灰度值
N=length(R);
for i=1:4
M(sqrt(x.^2+y.^2)==R(i))=I(i);
imagesc(-50:49,-50:49,M),colormap gray;
hold on
end
如果哦我按这个运行,最后得到的不是圆面,而是点分布。
请问该如何修改,才能得到填充的圆面?例如中间灰度值为0,然后不同的直径对应不同的灰度值
[ 本帖最后由 bop 于 2009-6-25 03:17 编辑 ] 原帖由 bop 于 2009-6-24 21:31 发表 http://www.chinavib.com/forum/images/common/back.gif
...画一个圆面,其中,在直径上的数据按y列分布...
不太清楚LZ的意思!
试试polar是否LZ要的
[ 本帖最后由 ChaChing 于 2009-6-24 22:40 编辑 ] 原帖由 ChaChing 于 2009-6-24 22:37 发表 http://www.chinavib.com/forum/images/common/back.gif
不太清楚LZ的意思!
试试polar是否LZ要的
polar好像不是的。
我是想用matlab,画一圆面。恩,例如,定义该圆面中心灰度值为零(黑色),然后其他地方的灰度值值随着半径的变化而变化。
请问,我该怎么修改呢?
谢谢
回复 板凳 bop 的帖子
可以做,精度不高,修改代码仅供参考,如何改进解析度自己考虑clc
clear all
close all
=meshgrid(-50:49);
M=zeros(100);
M(:,:)=50000; %背景
R=(0:35) ;%直径
I=(0:1000:35000); %要填充的灰度值
N=length(R);
for i=1:N,
M(abs(sqrt(x.^2+y.^2)-R(i))<10)=I(i);
imagesc(-50:49,-50:49,M),colormap gray;
hold on
end
回复 楼主 bop 的帖子
使用编辑将讯息合成一帖是个好习惯!但建议楼主以後视情况使用, 不然2F的回帖变成很唐突! 原帖由 ChaChing 于 2009-6-26 22:12 发表 http://www.chinavib.com/forum/images/common/back.gif
使用编辑将讯息合成一帖是个好习惯!
但建议楼主以後视情况使用, 不然2F的回帖变成很唐突!
恩,不好意思。 原帖由 wwbeyondww 于 2009-6-26 11:45 发表 http://www.chinavib.com/forum/images/common/back.gif
可以做,精度不高,修改代码仅供参考,如何改进解析度自己考虑
clc
clear all
close all
=meshgrid(-50:49);
M=zeros(100);
M(:,:)=50000; %背景
R=(0:35) ;%直径
I=(0:1000:35000); %要填充的灰度值 ...
谢谢。
后来我又尝试用fill,但是得到的图像上面有一个个圆环,就好象是分界线,请问这个分界线( 轮廓线?)可以去掉吗?
谢谢
clc
clear all, close all
=meshgrid(-50:49);
M=zeros(100);
R=(0:35);
I=(0:1000:35000);
N=length(R);
N=length(R);
for i=1:N,
M(abs(sqrt(x.^2+y.^2)-R(i))<10)=I(i);
imagesc(-50:49,-50:49,M),colormap gray,axis('square');
hold on
end
%using fill
figure(2)%就是下面的程序画出的圆出现分界线
for k=N:-1:1
t=0:pi/100:2*pi;
Cir=R(k)*exp(1i*t); %确定圆的大小
fill(real(Cir),imag(Cir),I(k)),colormap gray,axis('square'); %填充该圆面
hold on
end
谢谢
[ 本帖最后由 bop 于 2009-6-29 05:25 编辑 ]
回复 7楼 bop 的帖子
fill里加参数fill(real(Cir),imag(Cir),I(k),'edgecolor','none'),colormap gray,axis('square'); %填充该圆面 原帖由 wwbeyondww 于 2009-6-29 07:47 发表 http://www.chinavib.com/forum/images/common/back.gif
fill里加参数
fill(real(Cir),imag(Cir),I(k),'edgecolor','none'),colormap gray,axis('square'); %填充该圆面
好的,多谢了!:handshake
页:
[1]