登录论坛

查看完整版本 : [求助]谁知道patch函数怎么控制所显示图像的透明度


pentiumwb
2008-05-14, 16:32
三维矩阵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