VTK简介及安装

来源:互联网 发布:网络封面素材 编辑:程序博客网 时间:2024/05/18 18:19

VTK简介

      VTK(Visualization ToolKit)是一个开放源码、自由获取的软件系统,全世界的数以千计的研究人员和开发人员用它来进行3D计算机图形,图像处理,可视化。VTK包含一个c++类库,众多的翻译接口层,包括Tcl/Tk,Java,Python。 Visualization Toolkit 是一个用于可视化应用程序构造与运行的支撑环境,它是在三维函数库OpenGL 的基础上采用面向对象的设计方法发展起来的,它将我们在可视化开发过程中会经常遇到的细节屏蔽起来,并将一些常用的算法封装起来。比如Visualization Toolkit 将我们在表面重建中比较常见的Marching Cubes 算法封装起来,以类的形式给我们以支持,这样我们在对三维规则点阵数据进行表面重建时就不必再重复编写MarchingCubes 算法的代码,而直接使用Visualization Toolkit 中已经提供的vtkMarchingCubes 类。 Visualization Toolkit 是给从事可视化应用程序开发工作的研究人员提供直接的技术支持的一个强大的可视化开发工具,它以用户使用的方便性和灵活性为主要原则,具有如下的特点:

(1) 具有强大的三维图形功能。Visualization Toolkit 既支持基于体素Voxel-basedrendering 的体绘制Volume Rendering又保留了传统的面绘制,从而在极大的改善可视化效果的同时又可以充分利用现有的图形库和图形硬件。

(2) Visualization Toolkit 的体系结构使其具有非常好的流streaming 和高速缓存caching 的能力,在处理大量的数据时不必考虑内存资源的限制。

(3) Visualization Toolkit 能够更好的支持基于网络的工具比如Java 和VRML 随着Web 和Internet 技术的发展Visualization Toolkit 有着很好的发展前景。

(4) 能够支持多种着色。

(5) Visualization Toolkit 具有设备无关性使其代码具有良好的可移植性。

(6) Visualization Toolkit 中定义了许多宏,这些宏极大的简化了编程工作并且加强了一致的对象行为。

(7) Visualization Toolkit 具有更丰富的数据类型,支持对多种数据类型进行处理 。

(8) 既可以工作于Windows 操作系统又可以工作于Unix 操作系统极大的方便了用户。

VTK的历史和现状:

      1993年12月,GE的Will Schroeder, Ken Martin两个人写了一本书: The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics,VTK作为这本书的配套软件赠送。由于VTK的出色表现,人们对软件的关注程度远远超过了书,没有几年时间VTK就拥有了巨大的用户群。VTK现在是由kitware公司维护,以开源的形式开发,全世界所有的人都可以加入到开发者的行列。现在VTK的稳定版本是5.0,nightly 版本每天都会有更新。

VTK的特点:

  Open Source。采用CVS版本控制跨平台。支持Windows、Unix、Linux、Mac等多种平台功能强大。适合几乎所有的可视化领域,从医学可视化到数据可视化,都能找到VTK的用户支持多种语言开发。c语言当然不用说了,还包括脚本语言,如TCL、Python,也支持Java

具有强大的开发团队。包括多家开发单位,具有商业化的维护,具有来自全世界使用者的智力资源VTK的下载

可以到www.vtk.org主站下载

vtk-5.2.0.zip    vtk的源码
vtkdata-5.2.0.zip  vtk例子所需要的数据

还需要下载CMake跨平台工具

windows下的vtk安装
1、安装cmake
      这个应该很简单吧,windows下安装软件是傻瓜化的,运行CMSetup243-win32.exe,不停地点击下一步就行了
2、解压两个压缩包,建立所需文件夹
      我不喜欢直接在源码里编译,而是另外建立一个bin文件夹。比如我把c:/vtk/作为我们的主目录,将vtk源码解压在vtk5.0这个文件夹中,把data解压在vtkdata这个文件夹中,再建立一个空的文件夹取名为bin。注意,./vtk5.0下面,应该就是一大堆文件夹和文件,./vtkdata下面应该也可以发现几个子文件夹。

3、运行cmake
      首先,将源码和编译工作目录两个目录添好,在这个例子中,sourse code目录是c:/vtk/vtk5.0/,build 目录是c:/vtk/bin/。
再按configure按钮,cmake软件会让你选择需要使用的编译器,这里我们选vc6.0,然后,cmake就会对系统进行扫描了,停下来之后,我们就可以修改cmake选项了。
     修改cmake选项。这个环节还真不好说,一般vtk的初学者只需要用默认设置就行了。我只提醒一些比较重要的选项:
build_examples: 就是询问是否编译vtk中的例子,如选则on,就要花时间把vtk的例子编译一遍,我一般不选build_testing: test code 就是vtk开发者用来测试 vtk代码的一些测试代码,我们常常把它们当成学习vtk的例子,与build_examples类似,是否编译他们,看个人喜好。

      build_shared_libs: 如果设置为off,就只会生成lib文件,用于开发肯定是够了。如果设置为on,将会多生成dll文件。他们的区别不是我这里说得清楚的,反正如果用静态库编程,应用程序可以独立运行,尺寸也比较大,如果用动态库编程,应用程序必须找到动态库才能运行,但尺寸可以做得比较小。

      cmake_install_prefix: 这个比较重要,就是以后要安装vtk的路径。有些人又要问,我编译完了不就可以用vtk了吗,为什么还要安装?对,不安装其实可以,安装的好处就是可以从 1G多的文件中提取出.h .lib .dll等精华,安装在指定目录下,并修改系统环境变量

vtk_data_root: 一般地,cmake可以自己找到vtkdata的路径,但如果没有,把c:/vtk/vtkdata/填上即可,告诉cmake,vtk需要的数据都在哪里

      vtk_use_parallel: 对于想用vtk做并行计算的朋友,要把这个选上,对于只想学学vtk的,保持默认off

      vtk_use_guisupport: 很多人把vtk安装好了,却无法运行vtk中与mfc混合编程的例子,提示错误都是缺少vtkmfc.lib,问题就出在这个选项,我们必须把它设置为 on,再次configure之后,会出现一个新的选项vtk_use_mfc,把它也设置为on就行了。

提示:在cmake中,有些选项是依赖于另一些选项的,比如vtk_use_guisupport和vtk_use_mfc,当我们禁用vtk_use_guisupport,vtk_use_mfc是看不到的。

      修改完cmake选项以后,不停的按configure按钮,直到没有选项显示为红色,而且此时,ok按钮可用,点击ok按钮,就可以生成vc的工程文件了。

4、用vc6.0编译
      用vc6.0打开bin目录下的vtk.dsw文件,因为文件很多,打开速度会有些慢。打开后,直接build。编译的用时和计算机性能,以及cmake中的一些选项有关,一般1个小时内可以完成。结果保存在./bin/bin目录下。
编译也会出现不成功的时候,就要看编译器提示的错误类型来处理了!

5、安装
      用vc6.0打开bin目录下的install.dsp文件,不用理会提示的错误,直接build。编译结果就会安装在cmake_install_prefix设定的目录下。这个时候,把c:/vtk目录删除都行。当然,建议保留,也许以后还要更改cmake选项,再次修复编译呢。cmake会检查到改动,只处理改动过的地方,没有改动过的就不要重新编译了。

在linux下的vtk安装

      linux下安装和windows下安装思路是一样的,我这里假设你已经基本熟悉linux的基本操作。

1、安装cmake

      现在从官方网站上下载的cmake是免 编译的,我们可以直接在cmake源码的bin文件夹下找到ccmake这个可执行文件。就算没有编译,自己动动手,编译一下吧。另外,最好把ccmake命令加入到系统可搜索的范围内,这样就能直接运行ccmake命令了。

2、解压两个压缩包,建立所需文件夹

      同window下安装,指定一个主目录,比如~/vtk/,建立三个文件夹,解包。

3、cmake

      cd ~/vtk/bin/

      ccmake ../vtk5.0

      修改cmake的选项也参考前面windows下的vtk安装,因为linux下的cmake是文字界面,所以操作起来不直观,功能还是没有少的。

4、编译

      cd ~/vtk/bin/

      make

      make命令可以看成是gcc编译器调用makefile文件,进行编译

5、安装

      cd ~/vtk/bin/

      sudo make install

      这里之所以用sudo,是因为一些文件的读写需要root权限

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Augusdi/archive/2010/08/13/5809420.aspx

原创粉丝点击