文件名称:图像处理-python源码剖析
文件大小:1.65MB
文件格式:PDF
更新时间:2024-06-22 11:44:57
VTK 三维 可视化
图 2 数据对象和处理对象相连的可视化流水线 2.2 流水线执行 如前所示,当需要计算时流水线才执行,例 如你初始化一个读对象,想得到点的数目 vtkPLOT3DReader reader reader SetXYZFileName “$VTK_DATA_ROOT/ Data/combxyz.bin [reader GetOutput] GetNumberOfPoints 读对象将从调用的 GetNumberOfPoints()方法返 回“0”,尽管数据文件包含了上千个点。然而, 如果你加入 Update()方法 reader-﹥Update [reader GetOutput] GetNumberOfPoints 读对象就会返回正确的点数。因为第 1 个例子 GetNumberOfPoints()方法,没有要求计算,因此 返回点数为“0”。第 2 个例子中,Update()方法迫 使读入器执行,从文件中读入数据。通常不必须 手工调用 Update(),因为过滤器与可视化流水 线相连。在这种情况下,当演员收到一个需要绘制 自己的请求时,它会朝着它的映射方法,Update() 方法会自动被送到流水线。流水线的执行从高处开 始,绘制方法经常会初始化所需数据,这些数据通 过流水线向下传送,由于流水线部分过时,流水线 过滤器重新执行,导致流水线末端数据更新,然后 由演员来进行绘制。 2.3 图像处理 VTK 支持广泛的图像处理和体素绘制功能,2D (图像)和 3D(体素)数据均看成是 vtkImageData, VTK 的图像数据集是一个规则的、轴向排列的数 组。图像、像素映射、位图都是 2D 图像数据集例 子,体素(2D 图像堆积)就是 3D 图像数据集。 在图像流水线中的处理对象的输入和输出均是 图像处理对象,由于数据特性相对规则和简单,图 像流水线有一些其它的重要特性。体绘制用来可视 化 3D vtkImageData,特殊的图像浏览品观察 2D 图 像。图像流水线中几乎所有的处理对象都是多线程, 具有数据流分片能力(以满足用户特殊的内存局 限)。滤波器自动感知系统处理器的数目,在运行过 程中产生多线程数,自动将通过流水线的数据分片。 3 示例程序 使用 VTK 进行三维可视化编程一般分为以下 几个步骤:包含头文件、数据输入、抽取皮肤和骨 骼、得到轮廓和色彩、构建 3 个正交面、添加演员 开始绘制。 1)包含头文件 #include "vtkRenderer.h" #include "vtkWin32OpenGLRenderWindow.h" #include "vtkWin32RenderWindowInteractor.h" #include "vtkVolume16Reader.h" #include "vtkPolyDataMapper.h" #include "vtkActor.h" #include "vtkOutlineFilter.h" #include "vtkStripper.h" #include "vtkLookupTable.h" #include "vtkImageDataGeometryFilter.h" #include "vtkProperty.h" #include "vtkMarchingCubes.h" #include "vtkmyCamera.h" #include "Dopacity.h"