2009年4月12日星期日

Mayavi2 用户手册3.2——载入标量数据: 例子heart.vtk

内容来自Mayavi2的中文文档项目。本篇文档的源文件在这里。欢迎感兴趣的朋友加入

本章介绍一个使用 heart.vtk 文件的简单例子。这是一个 32 x 32 x 12 个点的3D 数据,每个点处是标量数据,并且这些点在空间平均分布。这是一个结构化数据集(structured dataset),事实上是 ImageData。以后我们会读入很多这样的数据,但是现在只要将其当作空间上平均分布的点,每个点有标量数据与之相对应。此数据显然是心脏的CT扫描数据--我不知道这是谁的心脏。此文件是一个易读的文本文件,如果你愿意,可以使用文本编辑器查看。

  1. 确保 mayavi2 已经启动。首先打开数据文件。使用 File->Load data->Open file 菜单项,在打开的文件对话框内,找到包含例子数据的目录,选中 heart.vtk 文件。

    一旦选中数据,可以在 Mayavi 左面的显示树中看到新节点,VTK file (heart.vtk)。注意,在 TVTK 场景中还看不到任何图形。

  2. 为了查看轮廓(outline)——一个方框,找到 Visualize->Modules 菜单项,选择 Outline 模块。在 TVTK 场景中可以立刻看到一个白色方框。在显示树中,也应看到两个新节点,`Colors and legends` 和其下面的 Outline

  3. 单击左面的 Outline 节点可以改变轮廓的属性。这将在窗口的左下部,显示树的下面,生成“对象编辑窗口”。试着修改其设置,并查看结果。如果你双击左面的节点,将弹出编辑器对话框,而不是嵌入的对象编辑器。

    注意,通常 Module 的编辑器窗口有一部分是 Actor`(角色),一部分为 `Mapper`(映射器),一部分为 `Property`(属性)。这些对应于 TVTK/VTK 术语。可以将 `Property 看作与颜色、表示(representation)(曲面、线框等等)、线宽等等相关。Actor 部分与屏幕上渲染的对象有关,编辑器通常可设置其是否显示。 在 VTK 术语中,Mapper 是指将数据转换为图元(graphics primitive)的对象。与其相关的属性包含在 Mapper 部分。

  4. 关于与 TVTK 场景交互的详细信息,请参考此章节 interaction-with-the-scene并尝试其例子直到熟悉为止。

  5. 现在,保持选中 Outline 节点,选择 Visualize->Modules->IsoSurface 菜单项,生成 iso-曲面。在左面可以看到一个新节点 IsoSurface,在场景中可以看到标量数据的 iso-轮廓。当选中某个 iso数值时,此 iso-曲面被相应地染上颜色。试试修改此模块的各项设置。

  6. 要产生有意义的可视化图形,需要了解每种颜色代表什么。单击显示树的 Colors and legends 节点,在对象编辑器内选中 Show scalar bar`,将在 TVTK 场景中显示颜色图例。单击并拖动图例可以将其在场景中任意移动,单击并拖动其边缘,可以改变其大小。在对象编辑器中选择不同的选项可以改变颜色映射特性。

  7. 生成一个简单的"网格平面(grid plane)"来查看点在网格上的情况。这可以通过 `Visualize->Modules->GridPlane 菜单项,使用 GridPlane 模块来实现。

  8. 右键单击一个特定模块并选择"删除"可将其删除。请在 GridPlane 模块中试试删除以及其他右键菜单选项。

  9. 试试 ContourGridPlane 模块和 ScalarCutPlane 模块。

    ScalarCutPlane 模块有个很强大的特性,称为 三维小部件(3D widgets)。在 TVTK 场景窗口中,可以看到一个剖面(cut plane) 以不同颜色表示切片上的数据。此剖面轮廓为红色,有一个箭头伸出来。可以直接点击并拖动此剖面;点击并拖动箭头可以转动此剖面。也可以使用对象编辑器窗口重设标量剖面。

  10. 单击 TVTK 场景中的保存图标或使用 File->Save Scene As 菜单项可以将可视化结果保存为图片。

你应该得到一个如下所示的图像。

由 heart.vtk 获得的可视化例子

mayavi 的一个优点是:虽然这里所有的操作都通过用户界面完成,但是所有这些操作都可以通过 Python 脚本完成。相关的更多信息请参考这里simple-scripting-with-mlab (更深入的内容请参考advanced-scripting-with-mayavi)。

打开数据文件和启动模块也可以通过命令行完成。例如,可以简单的使用下面的命令:

 $ mayavi2 -d /path/to/heart.vtk -m Outline -m IsoSurface \
> -m GridPlane -m ScalarCutPlane

更多信息在此章command-line-arguments。

没有评论:

发表评论


相关文章

Widget by Hoctro