matlab - 删除切片中的小值

标签 matlab 3d plot

如何删除切片图中的小值? 在我的情节中,基本上蓝色太多了,我看不到里面的红点。 enter image description here

或者,稍有不同:

*是否可以用matlab删除切片图中的一些点?

slice(X,Y,Z,V,sx,sy,sz) 表示体积 V 在由 sx,sy 和 sz 定义的整个平面上的值。但是我可以选择只保留这些计划的一些积分吗?

  • 我们是否必须在整个计划中表示 V 的值?

  • 我可以让“小值”变得透明吗?

编辑 新代码:

h =slice(x,y,z,V,sx,sy,sz);
for n=1:length(h)
    set(h(n), 'alphadata',get(h(n),'cdata'), 'facealpha','flat');   
end
a = alphamap('rampup',256);
a(a<(threshold)) = 0;
a(a>(threshold)) = 0.07;
alphamap(a);

我试过上面的代码。然而,这是我得到的情节: 我认为 cdata(颜色)有问题,但我不知道这是什么...

enter image description here

最佳答案

您可以调整透明度,使较低的值更透明。首先,您需要切片的句柄:

h = slice(X,Y,Z,V,sx,sy,sz);

h 不是单个句柄,而是不同切片的一系列句柄。对于任何一个 handle ,您都可以更改透明度(或循环所有 n 以更改它们):

set(h(n),'alphadata',get(h(n),'cdata'),'facealpha','flat');

alphadata 是透明数据 - 默认情况下为“1”(不透明),因此您可以将每个句柄设置为 cdata 的内容。 AlphaDataMapping 应该已经默认设置为 scaled - 所以 alphadata 中的值被映射到 alphamap,就像 cdata 值映射到您的颜色图(稍后会详细介绍)。

facealpha 是关于如何将 alphadata 应用于对象的面的设置 - 需要更改以便实际使用 alphadata 中的值。

如果您想调整透明值的透明度或透明值,您可以更改 alphamap。默认 map 只是线性的,可以通过 plot(get(gcf,'Alphamap')) 查看,其中 0 = 不可见,1 = 不透明。 map 的长度可以变化,因此您可以自由调整它 - 例如,如果您对这些值不感兴趣,您可以将下半部分完全归零:

a = alphamap('rampup',256);
a(1:80)=0;
alphamap(a); % only changes alphamap of current figure

阅读更多关于 Matlab 透明度的信息 here .

关于matlab - 删除切片中的小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19720241/

相关文章:

matlab - 在matlab中将范围划分为垃圾箱

matlab - 如何找到与其他向量的最大值对应的向量索引?

opengl-es - 阴影映射 - 与光正交的薄壁上的伪影

javascript - 3D效果jquery css3

r - 带有切割 y 轴的分组条形图

matlab - 显示多个数据时更好的错误栏

matlab - 上采样和下采样图像的最佳方法

javascript - 使用鼠标在 Three.js 中旋转相机

python - matplotlib 图缩放 : ticklabels don't get updated (Python)

r - 填充 R 图中的空白区域