vtk到底是个什么玩意?在ubuntu vtk 安装系统下怎么安装

VTK - 随笔分类 - |残阳|露 - 博客园
随笔分类 - VTK
摘要: VTK6 引入了许多不兼容的变。这其中就包括关于vtkImageData中元数据管理及内存分配的方法。这些方法有些直接改变了行为或者能加了额外的参数。GetScalarTypeMin()GetScalarTypeMax()GetScalarType()SetScalarType(int scalar_type)GetNumberOfScalarComponents()SetNumberOfScalarComponents(int n)AllocateScalars()GetNumberOfScalarComponents(), GetScalarType(), GetScalarTypeMin
摘要: VTK6 引入了许多不兼容的变。其中之一是删除vtkDataObject中所有有关管道的方法。下面列出来的就是其中的一些方法:SetUpdateExtent(int piece, int numPieces, int ghostLevel)SetUpdateExtent(int piece, int numPieces)SetUpdateExtent(int extent[6])SetUpdateExtent(int x0, int x1, int y0, int y1, int z0, int z1)int* GetUpdateExtent()GetUpdateExtent(int&
摘要: VTK6 引入了许多不兼容的变。其中之一是删除vtkDataObject中所有有关管道的方法。下面列出来的就是其中的一些方法:ShouldIReleaseData()SetReleaseDataFlag()GetReleaseDataFlag()ReleaseDataFlagToOn()ReleaseDataFlagToOff()所有上面的方法(排除ShouldIReleaseData)都被迁移到vtkDemandDrivenPipeline中,任何先前的代码都可以使用vtkDemandDrivenPipeline的方法来替换。ShouldIReleaseData是个方便的方法被管道执行过程使
摘要: VTK6 引入了许多不兼容的变。其中之一是删除vtkDataObject中所有有关管道的方法。其中的两个方法就是SetExtentTranslator() 和 GetExtentTranslator()。这个函数现在还存在在vtkStreamingDemandDrivenPipeline的方法中。例子1:vtkDataObject* dobj = algorithm-&GetOutput();dobj-&GetExtentTranslator();替换成:vtkStreamingDemandDrivenPipeline::GetExtentTranslator( algorit..
摘要: 在先前的vtk中,如vtkPointSetAlgorithm 等算法派生类中定义了虚方法:ExecuteInformation() 和 ExecuteData()。这些方法的定义是为了平稳的从VTK4到VTK5中。我们从如下的类中删除了ExecuteInformation() 和 ExecuteData():vtkDataObjectAlgorithmvtkGenericDataSetAlgorithmvtkHyperOctreeAlgorithmvtkPiecewiseFunctionAlgorithmvtkPolyDataAlgorithmvtkRectilinearGridAlgorit
摘要: VTK6 引入了许多不兼容的变。其中之一是删除vtkDataObject中所有有关管道的方法。下面讨论update方法并提供迁移现有代码的建议。Update()vtkDataObject::Update()在先前是一个方便的回调Update()方法,触发算法产生数据对象。由于数据对象已经不在引用它的产生者了,所有data object的update被移掉了。例子1vtkDataObject* dobj = someAlgorithm-&GetOutput();dobj-&Update();变成:someAlgorithm-&Update();例子2vtkDataObject*
摘要: VTK6 引入了许多不兼容的变。其中之一是删除vtkDataObject中所有有关管道的方法。其中的两个方法就是GetPipelineInformation() 和 GetExecutive()。这些方法被移到vtkAlgorithm 和vtkExecutive类中。例子1vtkDataObject* dobj = algorithm-&GetOutput();vtkExecutive* exec = dobj-&GetExecutive();替换成:vtkExecutive* exec = algorithm-&GetExecutive();例子2vtkDataObject
摘要: VTK6 引入了许多不兼容的变。其中之一是删除vtkDataObject中所有有关管道的方法。其中的一个方法就是GetProducerPort()。一般,先前使用这个方法如下例子:vtkPolyData* pd = vtkPolyData::New();someAlgorithm-&SetInputConnection(pd-&GetProducerPort());在vtk6 中,应该改成下面的用法:vtkPolyData* pd = vtkPolyData::New();someAlgorithm-&SetInputData(pd);
摘要: VTK6 引入了许多不兼容的变化,这其中就包括用SetInputData()和SetInputConnection()替换SetInput()方法。在先前的版本中,VTK4 引入了SetInput()方法,VTK5中引入了SetInputConnection()。下面举一些例子:在如下例子中,虽然我只演示了替换SetInput(),读者可以类比替换SetSource()。在例子中,读者可以搜索相应的替换方法SetSourceConnection() or SetSourceData()。 例子1anotherFilter-&SetInput(aFilter-&GetOutput()
摘要: 摘要对vtk版本4和5的管道机制重新架架构的主要目的是:迁移数据对象和算法对象中的管道执行逻辑到一个新集合的类中,我们称这个集合类叫executives。分离数据和执行模型的代码后,可以双双简化修改或者扩展管道机制的难度及工作量。VTK4和5之间的更改相当好取得的第一个目标,但不是解决第二个目标。本文所述的工作有两个主要目标:删除在vtk5中为了兼容vtk4而引入的兼容层,简化vtk6 的可视化工具包。继续开展在vtk5中开始的工作,完全分离数据模型和执行模型。这项工作是要付出代价:该文章所描述的 许多都已经不兼容vtk4了, 一些也不能兼容vtk5了。在此文档中,我们总结了这些更改,以及提供
摘要: 1. 使用vtkImageResample,通过线性插值方式对输入的数据进行重新采样,来修改输出的数据的spacing及extent。一般使用方法:SetAxisMagnificationFactor进行设置。 SetInput(reader.GetOutput()); SetAxisMagnificationFactor(0, 0.5); SetAxisMagnificationFactor(1, 0.5); SetAxisMagnificationFactor(2, 0.5);//重新设置x,y,z方向上的space。 适度放宽space,降低图形的显示质量,可以读取稍大的数据。2...
摘要: 在vtkImageData中,绘制体数据一种软实现的光线投射算法。算法可以处理所有种类的数据类型,最多四种组件。算法可以采用复合或者MIP渲染方式,并且可以与几何数据混合起来渲染。设置采样间距space可以用来加速渲染进程。此外, 对于固定点精度是15的数据中,可以执行很好的计算。该算法是多线程的,可以跨多核心处理并行扫描。对于vtkVolumeRayCastMapper来说,该算法是一个很好的替代者。但是,对于下面几种情况该算法无法实现。不能工作在等值面光线投射的情况下它只能用内插值取代以前分类组合它只有最大标量值MIP渲染。VtkVolumeRayCastMapper不能用于下面2中情况,
摘要: 使用vtk的C# warp 版本ActiViz.net之vtkRenderWindow。1.首先写个派生于UserControl下的一个自定义控件,用来host vtkRenderWindow代码如下: public partial class WinFormPaneFrame : UserControl { public WinFormPaneFrame() : base() { InitializeComponent(); } } 2. 在 构造函数中,添加vtkRenderWi...
摘要: ActiViz 提供了一个功能强大的界面到可视化工具包 (VTK)的接口,面向对象的软件系统,包括成千上万的算法,将数据转换成 3D 的交互式环境。ActiViz,它生成 C# VTK 的包装,使开发人员能够结合 web 和数据库访问的很多.NET 框架对象 VTK 的力量。作为源代码或作为一个预构建的 WinForms 控件可用,ActiViz.NET 包括例子,在线文档,并在.NET Framework 中支持智能感知。官网:/opensource/avdownload.php
摘要: 沿着轴方向切割体数据。vtkImageReslice 是几何图形过滤器中的瑞士军刀。他可以排列,旋转,翻转,缩放,重新采样,变形, 还有随意再任何效率与图像质量组合下,渲染图像。简单的操作,像排列,重新采样和渲染高效功能,与被人所熟知的vtkImagePermute、 vtkImageResample 和 vtkImagePad一样。有一些任务,vtkImageReslice更适合做这些事情。1)对一个图像应用简单的旋转,缩放和平移。有一个更好的注意是,先使用vtkImageChangeInformation,把图像的坐标系原点更新到图像中心点,以便尺度和旋转发生中心而不是环绕图像的左下角。2
摘要: 产生映射点集合到2D平面表面的纹理坐标vtkTextureMapToPlane是一个筛选器,将 2D 纹理坐标生成映射输入的纹理数据集点至一个2D平面上。范围可以是用户指定或自动生成的。(2D平面是由自动生成计算2D平面的中心 )。请注意生成的纹理坐标 (0,1) 之间的范围。实例:#-*- coding: UTF-8 -*-#-------------------------------------------------------------------------------# Name: 模块2# Purpose:## Author: ankier## Cre...
摘要: 产生映射点集合到圆柱体表面的纹理坐标vtkTextureMapToCylinder是一个筛选器,将 2D 纹理坐标生成映射输入的纹理数据集点至一个圆柱体上。范围可以是用户指定或自动生成的。(圆柱体是由自动生成计算圆柱体的中心 )。请注意生成的纹理坐标 (0,1) 之间的范围。实例:#-*- coding: UTF-8 -*-#-------------------------------------------------------------------------------# Name: 模块2# Purpose:## Author: ankier## Crea...
摘要: 产生映射点集合到球体表面的纹理坐标vtkTextureMapToSphere 是一个筛选器,将 2D 纹理坐标生成映射输入的纹理数据集点至一个球体上。范围可以是用户指定或自动生成的。(球体是由自动生成计算球体的中心 )。请注意生成的纹理坐标 (0,1) 之间的范围。特别的伊娃控制 s 坐标如何生成的。如果将 PreventSeam 设置为 true,s-纹理异 0-& 1,然后 1-& 0 (对应于角度 0-& 180 和 180-& 360)。使用流程:1. 球体的PolyData2. 为该球体polyData应用,映射算法过滤器vtkTextureMapToSphe
摘要: 执行各种平面计算vtkPlane 提供各种平面计算的方法。这些包括投影点,评估平面方程,和返回平面的法向量。vtkPlane 是抽象类 vtkImplicitFunction 的具体实现。主要用在做体数据上的面的切割(cutter)继承关系基本方法:EvaluateGradient (double x[3], double g[3])评估功能梯度在点 x [3]。Push (double distance) 在方向量的方向上平移distance距离,负值表示沿着法向量相反的方向移动distance距离。EvaluateFunction (double x, double y, double z
摘要: 收缩构成一个任意的数据集的单元格vtkShrinkFilter 收缩构成对其质心任意数据集的单元格。单元格点的平均位置作为计算单元的质心。萎缩中断开另一个单元格的结果。此筛选器的输出是的一般数据集类型 vtkUnstructuredGrid。警告:它是可能打开细胞里面翻出来,或在特殊情况下造成自我交集。例子:#-*- coding: UTF-8 -*-#-------------------------------------------------------------------------------# Name: 模块2# Purpose:## Author: ...
摘要: vtkTransform描述通过一个 4 × 4 矩阵的线性变换VtkTransform 可以用于描述线性的完整范围 (也称为仿射) 坐标转换在三个维度,内部表示为 4 x 4 齐次变换矩阵。当您创建新的 vtkTransform 时,它总是初始化为标识转换。SetInput() 方法允许您设置另一种转换,替换身份转换。有一个管道机制来确保当修改输入,则当前转换将相应更新。这种管道机制也支持由 Concatenate() 方法。在 PostMultiply 模式下,额外的转换将由当前矩阵表示任何转换之后发生。此类执行所有业务在右手坐标系中用右手旋转。剩下的一些图形库使用左手坐标系统和
摘要: vtkRotationalExtrusionFilter 是一个建模筛选器。它采用多边形数据作为输入,并生成输出的多边形数据。输入数据集是围绕 z 轴扫描出来的,以创建新的多边形基元。这些基元构成一个&裙边&或扫掠的曲面。例如,扫描一个线作为输入数据,环绕z轴扫描一圈就创建圆环的多边形的数据。此筛选器有许多参数可以设置。您可以控制是否 2D 对象 (即,多边形或三角地带) 的扫描上铺的生成几何通过&旋盖&的实例变量。另外,您可以控制旋转,角度和旋转以及是否执行沿 z 轴的平移。(平移是以创建类似&弹簧&的螺旋样式模型非常有用)。您还可
摘要: vtkTexturedSphereSource创建一个中心点在原点球体的。在两个(φ)的纬度和经度(θ)方向上,可以分别设定分辨率(多边形离散化)。它也可以通过指定部分领域最大φ和θ波的角度,创建半球体。基本方法:SetRadius(20) 设置球体直径SetThetaResolution(40) 设置维度上的分辨率 SetPhiResolution(40)设置经度上的分辨率SetTheta(100)设置最大的经度角SetPhi(10)设置最大的维度角例子:#-*- coding: UTF-8 -*-#--------------------------------------------..
摘要: vtkTextSource 转换一个字符串成poly data。基本方法:SetText('Hello, welcome') 设置显示的文本内容SetForegroundColor(0.1, 1.0, 0.5) 设置文本的颜色etBackgroundColor(1.0, 0, 1.0) 设置文本的背景色例子:#-*- coding: UTF-8 -*-#-------------------------------------------------------------------------------# Name: 模块2# Purpose:## Author: ...
摘要: vtkSuperquadricSource创建以原点为中心的多边形超二次曲面,可以设置尺寸。可以设置两个(φ)的纬度和经度(θ)方向的分辨率(多边形离散化)。浑圆度参数(纬度浑圆度和经度浑圆度)控制超二次曲面的形状。环形布尔值控制是否产生环形的超二次曲面。如果是的话,厚度参数控制的厚度的环形:0是最薄的环形,和1具有最小尺寸的孔。缩放尺度参数允许超二次曲面,在x,y,和z(在任何情况下,正确地生成法线向量)进行缩放。 尺寸参数控制的超二次曲面的size。原理是基于“刚性基于物理的超二次曲面”,AH巴尔,在“图形宝石III”,大卫柯克,编,科学出版社,1992年。基本方法: SetCenter.
摘要: vtkPointSource用来创建围绕特定中心点,特定直径的和特定数量点集合组成的球体。默认点是随机分布在球体里面。也可以生产的点只分布在球面上。基本用法:SetRadius()设置球体半径SetCenter()设置球体中心点SetNumberOfPoints()设置球中的点的个数SetDistributionToUniform()设置点的分布在球体内SetDistributionToShell()设置点分布在球面上。例子:#-*- coding: UTF-8 -*-#--------------------------------------------------------------
摘要: vtkPlaneSource创建一个平面的四边形的数组。vtkPlaneSource创建一个m×n阵列表示的一个平面上的四边形。改平面指通过指定一个起点,然后和其他两个点,定义了两个轴的向量。这两个向量不一定是正交的,但是必须不平行的一个四边形。 可以控制的ivars XResolution和YResolution来调节平面的分辨率(即,细分数)。缺省情况下,平面的中心在原点并垂直于z轴,长度为1和分辨率设置为1的宽度和高度。有三种方便的方法,让您可以轻松设置平面。第一,SetNormal(),允许指定平面的法向量。沿着法向量旋转平面。第二,SetCenter(),平移到指定的中心点
摘要: vtkOutlineSource创建一个线框的形状盒子。通过SetBounds()方法可以设置边界盒的长高宽。通过SetCorners()方法可以设置边角的弧度形状。例子:#-*- coding: UTF-8 -*-#-------------------------------------------------------------------------------# Name: outlineActorFactory package# Purpose: 通过两个点,创建一条直线## Author: ankier## Created: 08-12...
摘要: vtkLineSource 通过两点(x, y, z) 来创建一条线的poly data。基本方法: SetPoint1,SetPoint2设置先的2个端点。virtual voidSetPoint1 (double, double, double)virtual voidSetPoint1 (double[3])virtual double *GetPoint1 ()virtual voidGetPoint1 (double data[3])virtual voidSetPoint2 (double, double, double)virtual voidSetPoint2 (double.
摘要: vtkImageCanvasSource2D 数据源,开始创建一个空白的图像. 可以再上面画很多图像,如果线,管子,正方形,圆形等。基本方法: SetScalarTypeToUnsignedChar:设置值类型为无符号字符 SetDrawColor:设置画刷颜色 FillBox(0,511, 0,511)背景方块 FillTube(500,20, 30,400, 5)有宽度的线段 DrawSegment(10,20, 500,510)线段 DrawCircle(400,350, 80.0)园周 FillPixel(450,350)填充 FillTriangle(100,100...
摘要: vtkEarthSource 数据源,用圆球形的样式来生产地铁的版块轮廓形状。基本方法:virtual voidSetRadius (double)virtual doubleGetRadius ()virtual voidSetOnRatio (int)virtual intGetOnRatio ()Radius设置地球的半径长度OnRatio设置地球显示的精确程度 0~16, 值越小,显示越精确。例子:#-*- coding: UTF-8 -*-#------------------------------------------------------------------------
摘要: OutlineFactory 一个简单的atamai提供的ActorFactory。这个factory用来画一个数据集的盒装边界。它使用的是vtk的类之一vtkOutlineFilter。派生于:ActorFactory构造方法:OutlineFactory()常用的公共方法: SetInput(*data*) -- 设置要产生边界的数据集 GetInput() -- 返回该数据集 SetColor(*color*) -- 设置边界的颜色 RGB GetColor() -- 返回边界的颜色。
摘要: 1. 从vtk官网中下载VTK5.10.1及VTKData5.10.1。 http://www.vtk.org/VTK/resources/software.html2.解压缩到目录,并创建一个fold存放cmake生成出来的projects文件。fold的目录层次如下:3. 安装Python的头文件和静态库包:sudo apt-get install python-dev ubuntu12.0系统自带了python2.7的版本,不过缺少一个文件patchlevel.h。需要从copy一份并放 在/usr/lib/python2.7下面。4.cmake及cmake-gui的安装 s...
摘要: RenderPane是一个3D显示的类, 它可以包含窗口部件(如按钮), 3D类型的指针形状,而且主要是用来关联与绘制ActorFactories的。每个RenderPane和vtk的类vtkRender是1:1对应得关系。一个PaneFrame可以包含多个RenderPane,通常的用法师一个PaneFrame只包含一个RenderPane。在了解RenderPane的坐标系变换之前,先了解下欧式几何和透视几何。在欧式空间里,两条共面的平行线无法相交的,然而在透视几何里,他们最终在地平线相交到了一起,也就是说它们在无限远处相交。这种现象就是透视。因此,数学家August Ferdinand
摘要: wxPaneFrame --一个视窗窗口类。该类提供了atamai 的renderpane与wxPython的交互能力。wxPaneFrame的一般使用方式:
摘要: VolumeFactory –使用颜色转换函数的体绘制,使用VTK内建的体绘制函数。加速纹理体绘制可以再用户和体数据交互频繁的情况下使用,对用高质量图像的体绘制方法可以选择光线投射体绘制方法(ray-cast volume rendering)派生于ActorFactory构造方法:VolumeFactory()公共方法:SetInput() 设置一个vtkImageData作为输入源GetInput() 获得输入源SetRenderingMode() 设置绘制模式,'Texture' or 'RayCast'GetRenderingMode() 获得当前绘制模
摘要: ActorFactory, 3D可视化对象的基类。采用了设计模式中的工厂模式,一个ActorFactory可以用来组装不同的Actors。ActorFactory一个可视化对象,可以同时被显示在一个或者多个RenderPanes里。ActorFactory可以组装许多vtkActors。每次把ActorFactory连接显示到RenderPane,ActorFactory将为这个RenderPane产生新的vtkActors副本。ActorFactories也可以按分级体系的创建。例如:几个ActorFactories可以一起作为一个parent的ActorFactory的Children,可
摘要: Atamai是完全基于VTK及脚本语言Python,面向计算机辅助医疗特别是手术导航的应用系统的中间平台。Atamai的所处在医疗系统框架的位置如下:Atamai类层次结构如下:Atamai以事件为主线,以事件为驱动,EventHandler是所有类的根类。其三个核心类是:ActorFactory、RenderPane、PaneFrame,它们与VTK对应的关系如下:Atamai架构主要类介绍:(1 )EventHandler 解析 主要功能,一是定义事件Event类及EventHandler类。定义EventHandler类的相关常量EventModifier /EventType;二定义E
摘要: VTK—体绘制VTK主要提供了三种体绘制技术,除了光线投射法外,还有二维纹理映射和基于VolumePro硬件辅助的体绘制。光线投射法是一种基于图像空间扫描的,生成高质量图像的典型的体绘制算法,基本思想是从图像平面的每个像素都沿着视线方向发出一条射线,此射线穿过体数据集,按一定步长进行采样,由内插计算每个采样点的颜色值和不透明度,然后由前向后或由后向前逐点计算累计的颜色值 和不透明度值,直至光线完全被吸收或穿过物体。该方法能很好地反映物质边界的变化,使用Phong模型,引入镜面反射、漫反射和环境反射能得到很好的光照 效果,在医学上可将各组织器官的性质属性、形状特征及相互之间的层次关系表现出来,从Ubuntu下怎么打开.vtk后缀名文件_ubuntu吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:98,364贴子:
Ubuntu下怎么打开.vtk后缀名文件收藏
在Ubuntu下,本人通过permix计算得到了两个.vtk后缀名的文件,用记事本打开发现里面是计算结果的数据,请问怎么打开这两个文件然后得到一个可视化的结果!
天猫电器城,ubuntu 网卡配置,装机达人必备网络设备,品质科技成就高效智能生活!天猫电器城,品牌旗舰,闪电到家,超值包邮,智新生活!
有个老太,整天为儿子发愁。儿子大学刚毕业,整天在家里敲电脑,一心想成为扎克伯格;到了适婚的年龄,连个女朋友都没有,工作也不顺利,整天吵吵要创业。老太也是小户人家,要创业,谈何容易,真是要人没人要力没力,要钱更没有。老太整天在家里念佛,希望佛祖保佑儿子心想事成,手里拿着数珠,絮絮叨叨念着阿弥陀佛,阿弥陀佛……这时儿子突然在另外一间房间大叫:“智城云,免费,什么都有,我的虚机、数据库有着落了,我的网站可以建起来了,我要成为扎克伯格……”看吧,念佛有用,要智城云做什么。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或&&&&VTK使用安装VTK使用安装
VTK使用安装VTK使用安装
vtk安装设置vtk安装设置vtk安装设置vtk安装设置vtk安装设置
若举报审核通过,可奖励20下载分
被举报人:
liufeng2518
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行1877人阅读
VTK User's Guide – 中文版(19)
【译者:这个系列教程是以Kitware公司出版的《VTK User’s Guide -11th edition》一书作的中文翻译(出版时间2010年,ISBN: 978-1--8),由于时间关系,我们不能保证每周都能更新本书内容,但尽量做到一周更新一篇到两篇内容。敬请期待^_^。欢迎转载,另请转载时注明本文出处,谢谢合作!同时,由于译者水平有限,出错之处在所难免,欢迎指出订正!】
【本节对应原书中的第10页至第18页】
2.3Windows XP, Vista及以上版本平台下安装VTK
Windows平台下有两种安装VTK的方式。第一种是二进制/可执行文件安装【译者:VTK的二进制安装文件可以从上下载,这个安装文件的VTK版本是5.0的,比较老,所以不建议用这种傻瓜式的安装方法安装VTK,同时建议安装本书后续内容提到的vtk-5.6.1-win32.exe文件。安装这个文件以后,可以在自己的计算机运行*.tcl的文件。另外也可以从下载到VTK-5.10.1的安装版本】,通过这种安装方式可以捆绑安装Tcl等工具;第二种方式是VTK源代码编译安装,通过编译生成C++库文件以及VTK封装代码(生成Java,Tcl和Python等的可执行文件)。两种安装方式相比较而言,二进制安装方式要简单得多,但源文件编译安装方式则更具优势,它可以跟踪、调试以及修改VTK的源代码,如果你是开发人员的话,这种安装方式将会非常适合你。当然,如果选择二进制方式安装VTK的话,同样可以通过不同的方式扩展VTK:创建自定义类(见“编写VTK的类:概览”一节),使用运行时可编程过滤器(Run-time
Programmable Filters)(见“可编程过滤器”一节)以及运行时使用自定义的VTK类取代VTK原有的类(见“对象工厂”一节)等方式同样可以扩展VTK。
二进制安装
安装vtk.exe(用于执行Tcl/Tk文件的可执行程序)。可从VTK官网下载,一般是vtk-X.X.X-win32.exe文件,如vtk-5.6.1-win32.exe,安装界面如图2-1所示。安装文件名中的“X.X.X”表示安装的VTK版本号。同时还可以下载相应版本号的VTK源代码的文件*.zip以及VTK数据文件VTKData。每当发布新版本的VTK时,我们会在VTK的官网上给出链接以供下载,用户可以关注vtkusers邮件列表上有关VTK版本发布的公告。
图2-1 Windows下vtk.exe程序安装界面
VTK源代码目录中包含很多*.tcl的脚本文件,借助这些文件可以了解VTK里的类是如何协同工作的。把下载到的vtk-X.X.X.zip和vtkdata-X.X.X.zip文件解压到硬盘中,在VTK源代码文件夹下,可以找到“Examples”文件夹,文件夹“Examples”里又有类似“GUI”,“MangleMesa”以及“Parallel”的文件夹,每个文件夹的都含有一个名为“Tcl”的文件夹,里面包含了大量的Tcl例子。除了“Examples”文件夹,还有大量的库文件夹【译者:“库文件夹”是指VTK以这些文件夹的名字生成同名的库文件,如vtkGraphics.lib,vtkImaging.lib等】,像Graphics,
Imaging和Filtering。每个目录都会包含一个Testing/Tcl子目录,里面有对VTK逆行测试的例子,双击这些Tcl文件即可运行。初次双击后缀为.tcl的文件时,会弹出对话框,询问你用什么程序打开文件,这意味着你要把Tcl文件与vtk.exe可执行文件做一下关联,也就是在“打开为…”对话框中选择“浏览”,定位到VTK安装目录下,通常是“C:\ProgramFiles\VTK 5.6”或“C:\Program Files\Documents andSettings\&username&\My Documents\VTK
5.6”,然后选择bin目录,选择可执行文件vtk.exe,可以把“打开为…”对话框中的“使用此程序打开此种类型的文件”复选框选上,再点击“确定”按钮,以后双击.tcl后缀的文件就可以用VTK自动运行Tcl脚本文件了。
另外,如果你已经安装了Tcl/Tk程序的话,*.tcl的文件会自动与Tcl/Tk程序进行关联,这时你再双击*.tcl文件时要出现如下的错误提示:can’t find package vtkwhile executing “package require vtk”。可以用上一段介绍的方法,把*.tcl文件与vtk.exe程序进行关联。
以上就是在Windows平台下安装VTK二进制文件的全部过程,在第三章里我们会详细介绍如何书写自己的C++类,以及Tcl, Java和Python应用程序。
源代码安装
如果准备用VTK开发C++应用程序以及扩展VTK的话,就需要采用源代码安装方式。这种安装方式可能是一件比较有挑战的事情,它可能需要占用你的计算机不少时间。首先要确保你的机器是否适合编译所发布的VTK源代码,同时机器上也应该安装了Windows XP, Vista或以上版本的操作系统,另外必须安装了C++编译器,这个指南是以MicrosoftVisual Studio 2008【译者:原书是采用Microsoft VisualStudio 2005,我们在翻译时,将所有例子程序都在Microsoft
VisualStudio 2008上做了测试,所以该翻译版本是基于Microsoft VisualStudio2008的。】及更高版本的编译器做测试的,VTK可以很好的用这些版本的编译器进行编译。同样也支持Borland C++编译器、Cygwin下的gcc编译器或MinGW,NMake,MicrosoftVisual C++免费版本以及Microsoft Visual C++ 2005等。如果机器上还没安装任何编译器的话,先安装以上所说的编译器之一【译者:推荐安装Microsoft VisualStudio
接下来要考虑的是需要使用其他什么工具。假如准备用Java开发程序的话,必须下载安装Java JDK(可在Sun Microsystems:上下载)。如果打算用Tcl/Tk做开发,则须下载安装Tcl/Tk(源代码可从下载,或者从下载Tcl/Tk的二进制安装文件)。注意,Tcl/Tk
8.4版本可以与VTK 5.4.0版本协同工作。
安装CMake。要编译VTK,首先你必须先安装CMake。CMake的安装程序可以从下载。
运行CMake。安装完C++编译器、CMake以及所需的其他工具后(如Tcl,Java, Python),就可以运行CMake程序。打开CMake程序,界面如图2-2所示。CMake会根据不同的编译器以及操作系统生成VTK项目文件。在“Where is the sourcecode”一栏中指定VTK源码所在的目录(也就是压缩包vtk-5.6.1.zip解压后所在的目录),在“Whereto build the binaries”一栏指定VTK编译过程中生成的文件的目录【译者:源文件目录和编译目录最好分开,可以建立一个空的文件夹,用于存放编译过程中生成的文件。】,这两个路径的设置可以通过右边的“Browse
Source…”和“BrowseBuild…”按钮进行选择,或者手动输入。设置完这两个路径以后,就可以按“configure”按钮。初次配置时,会弹出对话框让用户选择编译器,根据机器已安装的编译器选择对应的编译器即可。接着CMake会自动填充变量列表的值,第一次运行configure以后,所有的变量条目会以红色显示,红色标示着缓存条目是自动生成的或者在上一次configure时值被作了修改。
图2-2CMake会根据不同的编译器、操作系统生成工程文件、Makefiles等,CMake是跨平台的,图中所示为CMake的图形用户界面。
Configure结束后就可以定制VTK编译的选项。比如,如果想激活VTK的Tcl封装特性,就必须把VTK_WRAP_TCL这一项勾选上(设置其值为ON)。设置完这些选项的值以后,再次按Configure按钮,直到所有的选项都变成了灰色。如果安装了Tcl/Tk程序,关于Tcl/Tk的一些选项还是显示NOTFOUND的话,就必须手动设置它们的值。可点击每个条目最右边的按钮进行设置,根据各个条目类型的不同,条目编辑的交互形式也各不相同,有文件选择对话框、文本框、下拉菜单等。通过这些交互方式,可对条目的值进行修改。
下面列出VTK中一些重要的变量值:
l& BUILD_SHARED_LIBS – 如果设置成yes(即勾上这个选项),VTK会编译成DLL动态库或者说共享库,如果设置成no,则编译成静态库。缺省值是no,即静态编译。某种程度上静态库可能比较好使用,因为在可执行文件运行时,不要求这些库文件在当前目录下或系统Path环境变量下,可执行文件自身会包含相关的库文件。这对于发布基于VTK的应用程序是比较有利的。
l& VTK_WRAP_TCL – 这个选项决定是否编译Tcl的封装特性。
l& VTK_WRAP_PYTHON – 决定是否编译Python的封装特性。
l& VTK_WRAP_JAVA – 决定是否编译Java的封装特性。
要获取关于这些选项的在线帮助,可以右击CMake上的变量,然后选择“Helpfor Cache Entry”,大多数默认的设置应该都是正确的。
设置完相关选项的值之后,再次按Configure按钮,直到所有的选项都变成了灰色。然后点击“Generate”(有些CMake版本可能是“OK”按钮),CMake会根据选择的编译器类型自动生成对应的工程文件。如果是Microsoft Visual Studio,就会在“Whereto build the binary”指定的目录下生成一些工程文件(Visual Studio 6.0是vtk.dsw文件,VS2005或更高版本的是vtk.sln文件)。在VisualStudio环境中加载工程文件后,选择编译版本(Debug,
Release,MinSizeRel, RelWithDebInfo等),然后选择ALL_BUILD工程,开始编译工程。如果是使用Borland编译器,生成的是Makefiles文件,则必须以命令行的形式给编译器指定合适的参数。Makefiles文件也是位于“Whereto build the binary”所指定的目录下。
当所有的VTK工程都编译完成后,所有的库文件以及可执行文件会出现在CMake里指定的编译目录下的bin子目录中(除非你修改了CMake选项EXECUTABLE_OUTPUT_PATH或LIBRARY_OUTPUT_PATH选项的值)。
注意:不要使用MSVC++中的“RebuildAll”菜单来编译源代码。需要重新生成每样内容的话,先清空VTK的编译目录,重新CMake,按以上的步骤重新生成工程文件,然后再编译。
如果选项BUILD_SHARED_LIBS的值设为ON的话,VTK程序运行时需要加载相应的DLL文件。这有不同的方法可以让VTK程序运行时加载DLL库文件,每种方法都有利有弊。最简单的方法就是确保VTK可执行程序和需要加载的VTK DLL库文件在同一个目录里,可以复制所有的VTK DLL库文件到应用程序所在的目录中,或者在CMakeLists文件中把应用程序的编译目录跟EXECUTABLE_OUTPUT_PATH的路径设置成一样的。一旦所有的VTK
DLL文件和所执行的应用程序都位于同一目录,一切就会正常运行。这种做法的好处就是简单,不好的地方就是一旦更新了VTK DLL文件以后,就无法更新先前复制过去的VTK DLL文件,除非把重新编译的VTK DLL文件再复制一遍;而且一旦应用程序的编译目录与VTK的DLL文件混在一起的时候,可能很难确定哪个输出来自哪个项目。
另一种方法就是改变PATH环境变量,这样就算应用程序与VTK DLL库文件不在同一个目录也能正确找到所要加载的动态链接库。PATH环境变量的设置也有两种方法,第一种方法是在命令行窗口中通过set命令临时改变PATH环境变量,VTK应用程序的运行也是在同一个命令行窗口中;或者是直接改变系统的PATH环境变量,将包含VTKDLL文件的路径添加到PATH环境变量中。除非你需要在同一台计算机上运行两种不同版本的VTK动态库文件,否则建议用后一种方法【译者:也就是将VTK
DLL文件所在的路径放在环境变量PATH里,右击“我的电脑”-&“属性”-&“高级”-&“环境变量”进行设置。】设置PATH环境变量。
KWWidgets提供了一个使用批处理脚本文件设置PATH变量(不用去修改PATH系统环境变量)的很好的例子。可参考KWWidgets目录下的KWWidgetsSetupPaths.bat脚本文件,KWWidgets源代码文件可从下载。
如果想了解更多关于Windows下DLL文件加载方面的内容,可以参考Windows SDK文档里的LoadLibrary和LoadLibraryEx函数。
至此,就成功地在计算机上安装了VTK,因为VTK的复杂性以及大量的源代码文件,可能使得安装编译过程显得有一定的挑战性。请仔细阅读我们在这部分中所介绍的安装说明,如果在这个过程中遇到了什么问题,可以在vtkusers邮件列表上提问(参考第一章“其他资源”一节)以获取帮助或者从Kitware公司获取商业支持。
2.4UNIX平台下安装VTK
UNIX系统存在众多的版本,因此,我们不得不通过编译VTK源代码来生成相关的库文件和可执行程序。
源代码安装
这部分内容将带领你过一遍在UNIX平台下编译VTK的步骤。与Windows平台不同,我们很难获取到针对UNIX平台编译好的预编译二进制文件和可执行程序,因此我们必须自己编译VTK。(注意:查找一下vtkusers邮件列表及第一章“其他资源”一节介绍的资源,有些用户已经在Web上提供了编译好的二进制文件)。一般来说,这个过程还是相当简单的,根据机器的配置情况VTK的编译安装过程可能会花上一到四个小时【原书是说需要1到4小时,但是对于目前的计算机配置而言,VTK的编译时间不需这么长时间。】。对于高端、大内存、多处理器的机器来说,使用并行编译可以在十分钟内编译完C++和Tcl的二进制文件和可执行程序。绝大部分的时间都花在等待计算机编译源代码上。只需花费你10到30分钟的时间,第一步是确认是否有编译VTK所须的资源。为保险起见,最好空出300M以上的磁盘空间。对某些系统,如SGI,还得留出更多的空间,特别是如果你要编译VTK的调试版本。由于VTK是使用C++编写的,所以还需要C++编译器。一般的C++编译器如CC、g++或者ACC等。
如果想在Tcl/Tk、Python或者Java中使用VTK,还需要先下载并安装这些工具。Java JDK可以从Sun Microsystems获得;如果打算使用Tcl/Tk,需要下载安装Tcl/Tk,可以从获得;Python可以从下载。下面开始介绍如何在UNIX平台下编译VTK。
与Windows环境类似,在UNIX系统下编译VTK也需要借助CMake(见上一节关于CMake介绍部分)。CMake官网()上有用于不同版本UNIX系统的预编译二进制文件,可以直接下载使用,如果网站上没有提供的版本,就只有下载CMake的源代码,自行编译了。
安装CMake。下载CMake的预编译二进制文件(tar文件),解压到目标目录下(一般是/usr/local/)。确保“cmake”以及与它关联的可执行文件都在当前路径下,或者给出完整路径运行“cmake”。
编译CMake。如果无法下载到与自己的UNIX相对应的CMake文件,就需要自行编译安装CMake了。要编译安装CMake只要把CMake的源码包(可从下载)解压到某个目录中,然后在那个路径下运行下面的命令即可:
./configure
makeinstall
如果没有root权限,可以省略上面的第三个步骤(也就是make install)。CMake可执行程序位于CMake/bin目录下。CMake提供了两种不同的可执行程序文件来配置VTK:ccmake提供了一个基于交互的终端,非常类似Windows平台下的cmake-gui程序;以及需要一步步回答一系列问题来完成整个配置过程cmake向导。
还得告诉CMake采用何种C++/C编译器。在多数UNIX系统中,可以通过下面的方式设置相关的信息:
setenvCXX /your/c++/compiler
setenvCC /your/c/compiler
exportCXX=/your/c++/compiler
exportCC=/your/c/compiler
否则CMake会自动检测编译器,假如机器上安装了多个编译器,CMake检测到编译器未必就是你想使用的。完成了这些设置后,在VTK源代码的同级目录中创建一个空的文件夹(比如叫VTK-bin),然后在这个目录下运行CMake,把刚才创建的目录以及VTK的源代码目录的路径作为参数传递给CMake,即:
ccmake../VTK
cmake–i ../VTK
接下来两小节的内容简要介绍一下ccmake和cmake–i的区别。对配置脚本比较熟悉的UNIX开发人员会注意到CMake和configure在功能上是很相似的。但是用configure生成makefile文件时需要用命令行参数进行控制,而CMake则可以通过用户交互设置编译选项来生成makefile文件。
基于用户交互终端定制编译选项(ccmake)。ccmake有一个基于用户交互的简单的终端,允许用户根据不同的机器环境定制编译选项来设置VTK的编译环境。当用ccmake运行CMake时,有一系列选项可供选择、修改,以便用户根据不同的环境设置VTK的编译环境。大多数的选项CMake都可以设置合理的缺省值。可以通过键盘上的箭头按键选择某个选项,当某个选项呈高亮显示时按回车键即可修改该选项的值,如果选中的选项类型是布尔型的,按下回车键就可以更改该选项的值。选项的值修改完成后再按回车键可以确认该选项的值。当所有选项的值都设置完成后,按“c”键即可完成整个设置过程。接着CMake就会进入处理配置文件的过程,必要时CMake还会在顶端部分显示新的选项,比如,如果打开了选项VTK_WRAP_TCL,就会出现新的选项要求设置Tcl/Tk库文件以及包含的路径。新的选项出现时,应该重新设置它们的值,假如这些新的选项有合理的缺省值时,也可以采用这些缺省值。然后再按“c”键重新配置,直到没有新的选项出现。这个过程完成以后,就会有新的可用的命令出现:“Generate”和“Exit”。此时可以按“g”键让CMake生成makefile文件或者选择退出。以后如果还想重新改变CMake里某些选项的值的话,只需根据以上介绍步骤再次运行ccmake即可。
向导模式定制编译选项(cmake –i)。在某些平台下,ccmake提供的用户交互终端可能不好使,这时可以尝试运行带“-i”选项的cmake命令来激活设置向导。向导首先会询问是否使用“高级选项”,对于大部分用户来说很少会使用到“高级选项”。接着CMake会一步步地询问每个选项的取值,对于每一个选项都会列出它们的详细描述信息以及缺省值。大多数情况下,CMake会自动填充比较合理的缺省值。当然,有些时候CMake所填充的值未必都是正确的,比如OpenGL库文件没有位于预期的位置时,用户就必须手动设置相关选项的值。另外,默认情况下CMake不会创建对Tcl、Python和Java等语言进行封装的选项。如果想支持其中某种语言的话,应该打开选项VTK_WRAP_XXX,必要时还要告诉CMake相应库文件和头文件的位置。回答完CMake所有的问题以后,CMake就会自动生成makefile文件,VTK就可以开始进行编译了。以后如果想更改某些选项的取值的话,可以根据以上步骤再运行CMake向导。
编译源代码
运行完CMake后就会生成makefile文件,然后键入make命令,开始编译VTK。有些make工具,如GNUmake(gmake)支持并行编译(gmake–j)。尽可能使用并行编译,即使在单处理器系统,因为文件的读写操作是编译过程最大的瓶颈,处理器可以同时处理多个编译进程。如果在编译过程中遇到什么问题,可以到vtkusers邮件列表(参考第一章“其他资源”一节)寻求帮助,也向Kitware公司获取商业支持。
多平台下编译VTK
如果想在多个UNIX平台下编译VTK,可以给每个平台分别复制一份完整的VTK源文件目录,然后根据以上介绍的步骤进行编译;或者可以只复制一份VTK源文件目录,然后在另外一个目录下为每个平台都生成一份目标代码、库文件以及可执行文件。后一种方法需要为每个平台创建一个空的编译目录,比如vtk-solaris。假定VTK源文件的目录跟新创建的空的编译目录处于同一层目录结构中,改变当前路径(cd命令)到这个新建的目录中,按照类似以下的命令运行CMake:
cd/yourdisk
ls(输出是VTK vtk-solaris vtk-sgi)
cdvtk-solaris
cmake– i ../vtk
ccmake../VTK
就会在目录vtk-solaris中生成makefile文件。这样就可以根据上面提到的步骤编译VTK。
现在VTK已经编译好了,可执行文件和库文件都在编译目录的bin/子目录中。如果打算在UNIX系统中和一个以上的开发者共享这些库文件,又有root权限的话,可以运行makeinstall命令,如果没有修改CMake配置选项中的CMAKE_INSTALL_PREFIX的值,则这个命令会把VTK安装到/usr/local中。运行makeinstall命令会复制编译和运行VTK应用程序时所需的所有文件到一个其他用户都能使用的目录下。
这就是在UNIX平台下编译和安装VTK的完整步骤,如果你想了解更多关于CMake的内容,可以登录http://www.cmake.org或者购买Kitware公司出版的图书《MasteringCMake》。第3章将会详细讲解如何运行VTK的例子以及创建自己的VTK应用程序。
【第2章 完】
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:237019次
积分:3095
积分:3095
排名:第8022名
原创:30篇
译文:20篇
评论:317条
本博客所有文章均为原创,欢迎交流和转载;转载请注明出处,谢谢!
博主从事图像、图形算法研究及应用开发多年,一路走来,深知各种开源框架、算法的学习门槛是多么让人沮丧,所以在本博客中将向大家分享一些学习经验。目前着重于ITK(Insight Segmentation and Registration Toolkit)和VTK(Visualization Toolkit)的基础讲解和一些Demo程序。以后将陆续分享一些对经典图像、图形算法的介绍,如果能够对大家有所帮助,不甚荣幸。
新浪微博:
邮箱:www_doling_
文章:20篇
阅读:44398
文章:26篇
阅读:168884
(1)(3)(12)(7)(2)(1)(5)(5)(15)}

我要回帖

更多关于 ubuntu 14.04安装vtk 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信