前一段时间在可视化的实验课上,我第一次接触了VTK (The Visualization Toolkit)这一开源项目。在本篇文章中,将给出如何通过VTK来调用 Marching Cubes 和 Volume Rendering的方法。要说明的一点是,以下内容是基于 Ubuntu 16.04 的平台上运行的,其中VTK的版本为最新的7.0.0。至于 Ubuntu 下 VTK的编译安装将不属于本文的讨论范围,有兴趣的同学可以参考网上的相关教程进行环境搭建。
调用 Marching Cubes
Marching Cubes.cxx 文件:
|
|
CMakeLists.txt文件:
|
|
这是已经写好的完整项目 MarchingCubes。下载以后进行解压,并且:
|
|
生成项目并且运行
|
|
运行结果为:
如果使用外部 Marching Cubes Data Sets数据集中的 MarchingMan 数据文件,则将其解压至 build 文件夹中
|
|
此处是在运行时传入两个参数:一个是数据文件所在目录 Marching Man,另一个是 ISO 感光度的值1000。并且,需要注意的是,由于解压后的数据文件夹为 Marching Man ,中间含有空格,因此须用反斜杠 \ 进行转义。当然,你也可以将其重命名为 MarchingMan ,这样在运行传参的时候就不需要对空格进行转义了,即可写为:
|
|
最后的运行结果为:
如果使用 Mummies 中的 Male 数据,则
|
|
如果使用 Mummies 中的 Female 数据,则
|
|
如果使用 PlasticSkull 中的数据,则
|
|
调用 Volume Rendering
由于在 VTK 中 Volume Rendering 的调用方式有多种,这里我们选取其中的 SmartVolumeMapper 进行讲解。
MinIntensityRendering.cxx
|
|
CMakeLists.txt
|
|
在这里,同样提供已经写好的 MinIntensityRendering 项目工程文件和运行所需要的 VTK 文件 ironProt.vtk 。下载解压,将 ironProt.vtk 放入 build 文件夹中,然后
|
|
运行结果: