首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用体素插值法绘制python mayavi的体积平面

用体素插值法绘制python mayavi的体积平面
EN

Stack Overflow用户
提问于 2015-03-03 17:04:39
回答 2查看 2.2K关注 0票数 3

我使用mayavi.mlab绘制了python中一个卷的切平面图。

呈现总是内插的。有没有一种方法可以在不插值的情况下绘制这些平面,从而使像素/体素可见?

示例代码,显示通过20x20x20体素卷切割平面的代码.

代码语言:javascript
复制
"""
Testing  scalar_cut_plane
"""
import numpy as np
import mayavi.mlab as mlab

# creating volume that increases in value
img3d = np.arange(20)
img3d = np.expand_dims(img3d, axis=1)
img3d = np.expand_dims(img3d, axis=2)
img3d = np.tile(img3d, (1, 20, 20))

fig = mlab.figure()
src = mlab.pipeline.scalar_field(img3d)

# Plotting two cut planes
cp2 = mlab.pipeline.scalar_cut_plane(src, plane_orientation='y_axes')
cp2.implicit_plane.widget.enabled = False
cp3 = mlab.pipeline.scalar_cut_plane(src, plane_orientation='z_axes')
cp3.implicit_plane.widget.enabled = False
mlab.view(azimuth=50, elevation=None)
mlab.outline()
mlab.show()

输出

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-05 15:36:46

对于这个问题,我能找到的最好的解决办法是使用use插值来扩大体积而不进行插值。

代码语言:javascript
复制
from scipy.ndimage.interpolation import zoom
img3d2 = zoom(img3d, 4, order=0)

现在可以看到体素大小。

票数 2
EN

Stack Overflow用户

发布于 2017-02-26 11:07:55

我是一个非常随意的使用mayavi的人,所以绝不是一个专家,但我确实设法在没有升级的情况下破解了一些东西。为此,我使用了image_plane_widget而不是scalar_cut_plane,并不完全确定两者之间的区别。

代码语言:javascript
复制
import numpy as np
import mayavi.mlab as mlab

# creating volume that increases in value
img3d = np.arange(20)
img3d = np.expand_dims(img3d, axis=1)
img3d = np.expand_dims(img3d, axis=2)
img3d = np.tile(img3d, (1, 20, 20))

fig = mlab.figure()
src = mlab.pipeline.scalar_field(img3d)

# Plotting two cut planes
cp2 = mlab.pipeline.image_plane_widget(src, plane_orientation='y_axes')
cp3 = mlab.pipeline.image_plane_widget(src, plane_orientation='z_axes')

for p in [cp2, cp3]:
    p.ipw.texture_interpolate = "off"
    p.ipw.set_input_data(p.ipw._get_input())

mlab.view(azimuth=50, elevation=None)
mlab.outline()
mlab.show()

就像vtk文档中提到的那样,仅仅一个texture_interpolate = "off"不起作用:

在设置vtkImageData输入之前设置。默认是打开的。

http://www.vtk.org/doc/nightly/html/classvtkImagePlaneWidget.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28837695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档