您的位置:首页 > 编程语言 > C语言/C++

vtk的小总结(1):基础知识

2016-04-21 23:00 302 查看
       也是因为需要,所以要学一点点vtk。借此发一点点总结,希望能有一点用。
1、 vtk里每个类的构造函数都定义为保护成员,所以不能直接类名+实例进行定义对象。要使用智能指针vtkSmartPointer<vtkRenderWindow>renWin = vtkSmartPointer<vtkRenderWindow>::New();  

如果使用的是*和::new()方法实现的,这里的new()需要在生命周期结束前使用Delete()删除。
       2、 vtkCylinderSource::setResolution(10)设置柱面10面;     
              vtkCylinderSource生成的数据类型就是vtkPolyData;      
              vtkPolyDataMapper():vtkMapper该类用于渲染vtkPolyData,就是将输入的数据转换成几何图进行渲染
              vtkActor:vtkProp 而其中的vtkProp就是数据存在于渲染场景中的形式。其子类vtkActor表达场景中的几何数据,vtkVolume表达场景中的体数据
              vtkRenderWindow:直接使用来创建操作系统的vtk渲染引擎  其中包含了vtkRender集合、渲染参数。AddRender()方法用于加入vtkRender对象,SetSize()设置窗口。  

              vtkRender:负责管理场景的渲染过程(p24详细介绍)
              vtkLight:设置位置灯光和方向灯光
              vtkCamera:设置相机
              vtkColor:负责颜色实现工作
              vtkStructureedPointsReader:读入此类型的vtk文件
       3、 vtk采用RGB和HSV两种颜色系统来描述颜色

       4、vtkCoordinate:用来管理坐标系之间的变换p46

       5、vtk中的空间变换相关的类:

vtkTransform2D,vtkTransform,vtkPerspectiveTransform,vtkGeneralTransform,vtkTransformFilter,vtkMatrix4x4;

       6、vtkRendering Engine(渲染引擎)和VisualizationPipeline(可视化管线)

       7、vtkMarchingCubes:移动立方法提取等值面:

vtkSmartPointer<vtkMarchingCubes>marchingCubes=vtkSmartPointer<vtkMarc     hingCubes>:New();

marchingCubes->SetInputConnection(reader->GetOutputPort());

marchingCubes->SetValue(0,500);

类似于vtkMarchingCubes的对数据处理对类称为Filter

       8、visuallizationpipeline中采用LazyEvaluation(惰性赋值)的方法来控制管线的执行。就是vtkObject中有一个重要的成员变量为Mtime,并且采用的是DemandDriven,即只有在发出请求的时候才控制管线的执行。

       9、upDate()函数会在render()函数执行的时候自动调用,如果你要在程序中间显式地输入数据,那么必须手动地调用Update()函数。

       10、引用计数功能,就是在程序中有可能有重复的值,将这些数据共享,同时只生成一份数据,并且在引用的对象都被移除的时候,就自动析构。

       11、reader->IsA(“类型”)用来判断对象是不是这个类型的。

               Reader->GetClassName()用来返回当前对象的类型。

 

vtk中的数据传是通过port来实现的,具体而言就是,visuallizationpipeline是通过SetInputConnection()和GetPutputPort()来完成的。并且输入输出的数据需要是相同类型的。

BMP是windows下的一种图像格式

在函数返回值中,可以返回智能指针,并且在函数中被声明的对象不会被删除,但是你必须使用智能指针的引用去接收函数的返回值。不然会导致智能指针计数变成0,从而返回了悬空指针。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vtk c++ 图像处理