查看单个帖子
旧 2008-05-14, 16:32   #1
pentiumwb
初级会员
 
注册日期: 2008-03-05
年龄: 43
帖子: 6
声望力: 0
pentiumwb 正向着好的方向发展
默认 [求助]谁知道patch函数怎么控制所显示图像的透明度

三维矩阵arrCT里面是一个医学用的人头的数据,头里面我设了一个球作为病灶,数值是特定的

我用下面的代码进行显示,但显示出来整个表层都是不透明的,里面的东西自然就看不到了,失败啊

搞了一天还是不行,关键是patch函数。Help里面显示其明显是可以设透明度的,要设置 FaceAlpha 和 edge Alpha,但没有例子提示这么用

我加了'AlphaDataMapping','scaled','FaceAlpha','flat' 来试试,但总是不行,显示问题如下:

Warning: Patch FaceVertexAlphaData of size 0 cannot be used with Flat Alpha..
Warning: Patch FaceVertexAlphaData of size 0 cannot be used with Flat Alpha..

急死我了。。。。。。。。。。任务就要交了,求好心人赶紧出来帮帮我!


我的代码:

D=arrCT(1:2:end,1:2:end,1:2:end);

[x,y,z,D] = reducevolume(D,[1,1,1]);

D = smooth3(D);

p1 = patch(isosurface(x,y,z,D, 5,'verbose'), 'FaceColor','red','EdgeColor','none');

isonormals(x,y,z,D,p1);

p2 = patch(isocaps(x,y,z,D, 5), 'FaceColor','interp','EdgeColor','none');

view(3); axis tight; daspect([1,1,1])

colormap(gray(100))

camlight; lighting gouraud
上传的图像
文件类型: jpg 20080513_3b056d23db8ac371bd71UAR34WUMDqDp.jpg (49.3 KB, 8 次查看)
pentiumwb 当前离线   回复时引用此帖