python - Mayavi 中的基本 3D 体素网格

标签 python graphics 3d vtk mayavi

我正在尝试通过 Python 中的 Mayavi 可视化 3D 阵列。我只是想创建一个结构化的 3D 体素网格,我可以在其中显示一些预先指定的体素空间填充点。我不认为我想要

我能找到的唯一一个我认为比较相关的例子是this MRI example .我可以使用以下代码来获得一个有点可行的示例:

import numpy as np
from mayavi import mlab

data = (100, 100, 100)
data = np.zeros(data)
data[0:50, 50:70, 0:50] = 1
data[0:50, 0:20, 0:50] = 1

src = mlab.pipeline.scalar_field(data)
outer = mlab.pipeline.iso_surface(src)

mlab.show()

这能够生成以下图像: enter image description here enter image description here 如您所见,并非所有方框的边都已生成,即使这些点与生成的方框的边具有相同的值。

有没有办法可视化 numpy 数组中值等于 1 的每个点?如果没有等值面可视化我也很好——事实上,我更喜欢一些 Minecraft 风格的 block 状体素可视化。

最佳答案

你好

import mayavi.mlab
import numpy

data = (100, 100, 100)
data = numpy.zeros(data)
data[0:50, 50:70, 0:50] = 1
data[0:50, 0:20, 0:50] = 1

xx, yy, zz = numpy.where(data == 1)

mayavi.mlab.points3d(xx, yy, zz,
                     mode="cube",
                     color=(0, 1, 0),
                     scale_factor=1)

mayavi.mlab.show()

enter image description here

关于python - Mayavi 中的基本 3D 体素网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37388254/

相关文章:

graphics - 有人知道好的图形变形代码或算法吗?

3d - 根据与另一点的距离在贝塞尔曲线上查找点

c++ - 计算 gluLookAt、glOrtho 和 glFrustum

css - 使用 matrix3D 创建立方体,作为多个变换的替代方法?

python - 不支持的格式字符?

python - 一个函数的类型提示包装另一个函数,接受相同的参数

java - 如何在 Java 中绘制二维图形?

java - 如何知道是否在图形对象上单击

python - 按列扩展行,同时根据值操作其他行

python - 在 Python 中操作 WebP 图像