VTK修炼之道1_初识VTK
来源:互联网 发布:网络可能被劫持 编辑:程序博客网 时间:2024/05/18 17:23
1.VTK是什么?
Visualization ToolKit
3D计算机图形学、图象处理及可视化工具包VTK使用C++、面向对象技术开发;基于OpenGL,封装了OpenGL中的功能,屏蔽细节、便于交互、易于使用提供多种语言接口C++ 、Java 、Tcl、 Python 等;可在Windows 98/NT, SGI, Linux, Sun, HP等系统编译运行;最重要的一点是:开源(Open Source)。典型应用一:体绘制典型应用二:面绘制典型应用三:矢量场的可视化
2.VTK的使用流程
VTK 流水线机制Visualization Model:generation geometryGraphics Model:rendering一般可视化流程可以详细表述为:绘图过程(Graphics Model):目的是将图形原语在屏幕上显示。下面举一个典型的例子来理解Actor:用伪代码来表征这个过程为:Main() { create a window; create a renderer; give the renderer to the window; create procedural geometry; create a mapper; give the geometry to the mapper; create an actor; give the mapper to the actor; give the actor to the renderer; window->render(); }即:Windows->Render->Actor->Mapper->Geometry
3.VTK的开发流程
4.一个比较震撼的实例
//得到图像文件vtkDICOMImageReader *Reader = vtkDICOMReader::New();Reader ->SetDirectoryName("");Reader ->Update();//MCvtkMarchingCubes *m_MC = vtkMarchingCubes::New();m_MC ->SetInput(Reader->GetOutput());m_MC ->SetValue(0, 200); //获得皮肤几何数据的属性vtkPolyDataMapper *Mapper= vtkPolyDataMapper::New(); Mapper-SetInput(m_MC ->GetOutput());//显示vtkActor *m_actor = vtkActor::New();m_actor->SetMapper(m_isoMapper);//皮肤颜色m_actor->GetProperty()->SetDiffuseColor(0, .49, .25);//设置反射率m_actor->GetProperty()->SetSpecular(0.3); //设置反射光强m_actor->GetProperty()->SetSpecularPower(20);//不透明度m_actor->GetProperty()->SetOpacity(1);//绘制vtkRenderer *m_renderer = vtkRenderer::New();m_renderer ->AddActor(m_actor);m_renderer ->SetBackground(0.2,0.5,0.3);vtkWin32OpenGLRenderWindow *m_renWin = vtkWin32OpenGLRenderWindow::New();m_renWin-> AddRenderer(m_renderer);m_renWin-> Render();vtkRenderWindowInteractor *m_iren = vtkRenderWindowInteractor::New(); m_iren->SetRenderWindow(m_renWin);VTK主要工作流程符合流水线机制,永恒不变,但使用起来要灵活应用其中的一些类,不要单纯的拘泥于最基本的流水线,其实有些类充当一个角色,有些类可以连续承担多个角色。
5.VTK在图像处理、虚拟现实、计算机图形学中的应用
图像处理:
虚拟现实:计算机图形:
3 0
- VTK修炼之道1_初识VTK
- VTK修炼之道14:图像处理_创建
- VTK修炼之道31:图像二值化_阈值法
- VTK修炼之道32:边缘检测_梯度算子
- VTK修炼之道36:图像平滑_均值滤波器
- VTK修炼之道38:图像平滑_中值滤波器
- VTK修炼之道39:图像平滑_各向异性滤波
- VTK修炼之道80:VTK开发基础_智能指针与引用计数
- VTK修炼之道82:VTK管线机制_信息对象类VTKInformation
- VTK修炼之道40:频域处理_快速傅里叶变换及其反变换1
- VTK修炼之道2_VTK体系结构1
- VTK修炼之道6_仔细分析一个复杂程序
- VTK修炼之道11:基本数据结构_数据对象&数据集
- VTK修炼之道13:数据读写_图像数据的读写
- VTK修炼之道15:图像处理_显示(vtkImageViewer2 & vtkImageActor)
- VTK修炼之道16:图像处理_窗口分割和图像融合(Viewport&vtkImageBlend)
- VTK修炼之道19:图像基本操作_图像像素值的访问与修改
- VTK修炼之道20:图像基本操作_图像类型转换
- 元素内容 垂直居中
- Vue.js2.0从入门到放弃---入门实例(一)
- Ubuntu通过apt安装LAMP环境
- 利用DOS命令将txt文件隐藏在图片中
- [JS]window.location获取url各项参数详解
- VTK修炼之道1_初识VTK
- Football
- C++中new,delete详解及其与malloc,free的区别
- 东东的软件项目 (二分+动规)(模拟赛)
- 如何在git bash上使用vim
- AFN 内存泄露的情况
- bootstrap row 之间的竖直方向的距离要怎么调整?
- Retrofit源码解析---addConverterFactory和addCallAdapterFactory区别
- RAID技术详解