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
我用下面的代码进行显示,但显示出来整个表层都是不透明的,里面的东西自然就看不到了,失败啊
搞了一天还是不行,关键是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