我mayavi.mlab用来显示从图像中提取的3D数据.数据如下:
3线条x, y, x,通常用于约20台摄像机mlab.plot3d().4000点的使用mlab.points3d().对于(1)我有一个功能来分别为每个摄像机绘制每条线.如果我是正确的,所有这些行都被添加到当前场景的mayavi管道中.在mlab.show()场景需要大约10秒钟来渲染所有这些线条.
对于(2)我找不到一种方法来一次绘制所有点,每个点都有不同的颜色,所以此刻我会迭代mlab.points3d(x,y,z, color = color).我有更新的等待这个例程完成,因为它需要很长时间.如果我用相同的颜色一次绘制所有点,则需要大约2秒钟.
我已经尝试使用fig.scene.disable_render = True并重置fig.scene.disable_render = False之前启动我的脚本,然后显示场景mlab.show().
如何在合理的等待时间内使用mayavi显示我的数据?
一般原则是 vtk 对象有很多开销,因此为了渲染性能,您希望将尽可能多的东西打包到一个对象中。当您调用 mlab 便利函数时,points3d它会创建一个新的 vtk 对象来处理该数据。因此,迭代并创建数千个单点作为 vtk 对象是一个非常糟糕的主意。
与另一个问题一样,暂时禁用渲染的技巧——“正确”的方法是让一个 VTK 对象保存所有不同的点。
要将不同的点设置为不同的颜色,请为 vtk 对象提供标量值。
x,y,z=np.random.random((3,100)) some_data=mlab.points3d(x,y,z,colormap='酷') some_data.mlab_source.dataset.point_data.scalars=np.random.random( (100,))
仅当您能够在颜色图中充分表示所需的颜色值时,这才有效。如果您需要少量有限数量的颜色或少量有限数量的简单颜色图,这很容易,但如果您需要完全任意的颜色,则非常困难。
| 归档时间: |
|
| 查看次数: |
1200 次 |
| 最近记录: |