
VTK系列教程
文章平均质量分 82
DolingStudio
这个作者很懒,什么都没留下…
展开
-
06-VTK基本数据结构(3)
6.4 属性数据属性数据(AttributeData)是与数据集的组织结构相关联的信息。由前面的内容可知,组织结构包括几何结构及拓扑结构,几何结构由点数据定义,拓扑结构由单元数据定义。因此,属性数据通常是与数据集的点数据或者单元数据相关联,但有时属性数据也可能与组成单元的某些成分相关联,如,单元数据的某条边或者某个面等。此外也可以给整个数据集指定某个属性数据,或者数据集里的某一组单元数据或点数原创 2013-02-03 16:38:42 · 10095 阅读 · 1 评论 -
03-VTK基础概念(1)
3、VTK基础概念在第2章里,我们已经接触了一个简单的VTK工程,也掌握了怎么使用CMake来构建VTK工程的步骤,本书后续章节的所有例子都是采用第2章介绍的步骤来构建VTK的工程。本章我们先在第2章TestVTKInstall的基础上作一些更改,演示一个能够交互的VTK应用程序。与前面的风格类似,我们先是让你“知其然”,然后再慢慢地让你“知其所以然”。3.1 一个稍微复杂的VTK程序原创 2013-01-24 00:58:16 · 42915 阅读 · 38 评论 -
06-VTK基本数据结构(5)
6.6 数据集的存储与表达可视化数据自身的特点决定了数据对象内存的分配与管理必须谨慎处理才有可能创建出高效的可视化系统。VTK中对绝大多数的数据对象的内存分配采用连续内存,连续内存的结构可被快速地创建、删除和遍历,称为Data Array (数据数组),用类vtkDataArray实现。6.6.1 vtkDataArray数据数组的访问是基于索引的,从零开始计数。我们以vtkFloat原创 2013-02-18 21:53:19 · 13189 阅读 · 6 评论 -
06-VTK基本数据结构(2)
6.3 单元类型数据集由一个或多个单元组成,图6.6和6.7列出了VTK支持的线性和非线性类型的单元。一系列有序的点按指定类型连接所定义的结构就是单元(Cell),单元是可视化系统的基础。这些点的连接顺序通常也称为顶点列表(Connectivity List);所指定的类型定义了单元的拓扑结构,而点的坐标定义了单元的几何结构。比如,图6.8是类型为六面体(Hexahedron)的单元,顶点原创 2013-02-03 14:18:29 · 12231 阅读 · 1 评论 -
05-VTK在图像处理中的应用(9)
5.14 图像频域处理在图像处理和分析中,经常会将图像从图像空间转换到其他空间中,并利用这些空间的特点进行对转换后图像进行分析处理,然后再将处理后的图像转换到图像空间中,这称之为图像变换。在一些图像处理和分析中通过空间变换往往会取得更有效的结果。图像频域处理是指将图像从图像空间转换到频域空间进行处理的过程。最常用的频域转换是傅里叶变换。对于傅里叶变换的理论内容不是这里讨论的重点,读者可以从网上原创 2013-01-31 17:21:51 · 9540 阅读 · 1 评论 -
05-VTK在图像处理中的应用(6)
5.10 图像运算5.10.1 数学运算vtkImageMathematics提供了基本的一元和二元数学操作。根据不同的操作,需要一个或者两个输入图像。二元数字操作要求两个输入图像具有相同的像素数据类型,颜色分量。当两个图像大小不同时,输出图像的范围为两个输入图像范围的并集,并且原点和像素间隔与第一个输入图像保持一致。 1: vtkSmartPointerimageSource原创 2013-01-29 21:35:51 · 9032 阅读 · 4 评论 -
05-VTK在图像处理中的应用(3)
5.6 图像颜色映射5.6.1 图像灰度映射vtkImageLuminance负责将一个RGB彩色图像转换为一个单组分的灰度图像。映射公式如下:luminance = 0.3*R + 0.59*G + 0.11*B该公式中,R为输入图像的第一分量(红色),G为第二分量(绿色),B为第三分量(蓝色)。这个计算结果计算一个RGB颜色的亮度。该类的使用也比较简单,用户无须设置参数,代码如原创 2013-01-28 17:18:21 · 10726 阅读 · 4 评论 -
05-VTK在图像处理中的应用(1)
5、VTK在图像处理中的应用图像是VTK中一个非常重要的数据。数字图像广泛应用于工业生产、生物医学、媒体娱乐、地质、气象等重要领域,数字图像处理具有重要的应用价值。我们在掌握了VTK的基本知识后,这一章着重讲解数字图像处理相关技术,学完本章你会觉得原来图像处理是如此简单!5.1 VTK图像数据结构数字图像文件内容由两个部分组成:图像头信息和数据。图像头信息定义了图像的基本信息,主要包括原创 2013-01-25 12:51:56 · 27970 阅读 · 16 评论 -
02-VTK编译安装
2、VTK编译安装学习VTK最好是从下载VTK源码,然后自己编译开始。编译VTK是很简单的一件事情,最重要的是把准备工作做好。本章将会详细演示如何编译安装VTK。这里提到的VTK开发环境为:Windows 7旗舰版64位操作系统,Visual Studio 2008集成开发环境,CMake 2.8.6,Qt 4.8.2以及VTK 5.10 Release版本。后续所有的程序示例代码都是在这原创 2013-01-23 10:03:33 · 43136 阅读 · 58 评论 -
03-VTK基础概念(2)
3.3 光照剧场里有各式各样的灯光,三维渲染场景中也一样,可以有多个光照存在。光照和相机是三维渲染场景必备的因素,如果没有指定(像3.1.1_RenderCylinder例子,我们没有给Renderer指定相机和光照),vtkRenderer会自动地创建默认的光照和相机。VTK里用类vtkLight来表示渲染场景中的光照。与现实中的灯光类似,VTK中的vtkLight实例也可以打开、关闭,设置原创 2013-01-24 22:30:59 · 27734 阅读 · 16 评论 -
04-VTK可视化管线(1)
4、VTK可视化管线通过第3章的学习,我们已经了解了VTK的一些基础概念。在这一章里,我们将更深入地学习VTK,其中包括VTK的系统框架结构、引用计数、智能指针、Observer/Command设计机制以及本章的重点内容——VTK可视化管线结构。通过本章的学习,可能你对VTK的设计框架将会有更深一层的理解。所谓追根溯源,首先我们先了解一下VTK里绝大多数类的共同的父类vtkObjectBa原创 2013-01-25 00:09:47 · 26481 阅读 · 9 评论 -
04-VTK可视化管线(2)
4.2 可视化管线我们回头再看看3.1的示例RenderCylinder。在这个例子及后续的扩展内容里,我们可以找到以下列出的类或其子类:vtkProp; vtkAbstractMapper;vtkProperty; vtkCamera; vtkLight; vtkRenderer; vtkRenderWindow;vtkRenderWindowInteractor; vtkTransfo原创 2013-01-25 12:10:45 · 16182 阅读 · 18 评论 -
05-VTK在图像处理中的应用(7)
5.12 边缘检测图像中不连续的灰度值会产生边缘,图像的边缘检测是基于边界的图像分割方法的基础,例如分水岭算法,通常是分割原图的梯度图像,梯度实际上也是反应的图像边缘信息。图像边缘一般常用图像一阶导数和二阶导数来检测。5.12.1 梯度算子梯度算子对应于图像一阶导数。图像一阶导数计算一般是通过差分运算来近似的。VTK中可以使用vtkImageGradient计算图像梯度。注意图像梯度是原创 2013-01-31 16:44:50 · 9623 阅读 · 2 评论 -
05-VTK在图像处理中的应用(2)
5.4 vtkImageData基本操作图像处理离不开一些基本的图像数据操作,例如获取和修改图像的基本信息,访问和修改图像像素值,图像显示,图像类型转换等等。熟练掌握这些基本操作有助于使用VTK进行图像处理的快速开发。 5.4.1图像信息访问和修改vtkImageData中提供了多个函数用于访问或者获取图像的基本信息,这些函数通常使用Set或者Get加上相应的信息名的形式,例如获取原创 2013-01-27 23:13:42 · 15880 阅读 · 15 评论 -
01-从零开始学习VTK
1、从零开始学习VTK可能在这之前你没有使用过VTK,甚至不知道VTK是什么东西。这里假定你没有一点VTK基础,但已经有了一些基本的C/C++编程基础,以及计算机图形学的理论知识储备,想使用VTK从事相关的项目开发,又不想查看VTK海量的英文文档,但又想快速入门。好吧,废话少说。从VTK最基础的部分开始学起。1.1 什么是VTK?VTK,全称为Visualizatio原创 2013-01-23 09:22:46 · 73138 阅读 · 5 评论 -
06-VTK基本数据结构(4)
6.5 不同类型的数据集至此,我们知道,数据集由组织结构和与之关联的属性数据构组成,组织结构包括拓扑结构和几何结构。数据集的类型是由它的组织结构决定,同时数据集的类型决定了点和单元之间的相互关系,图6.11列出了常见的数据集类型,图6.12是对应的类的继承图。依据数据集的结构特征,可分为规则结构和不规则结构的数据。如果组成数据集的点是规则的,则称该数据集的几何是规则的,如果组成数据集的单元原创 2013-02-03 22:05:24 · 10279 阅读 · 2 评论 -
06-VTK基本数据结构(1)
6、VTK基本数据结构我们已经学习了VTK的一个重要概念——可视化管线,了解了VTK数据的流动过程。好比我们做一道菜,在做每一道菜之前,首先要掌握这道菜的做法,什么时候放盐什么时候放酱油等调料,除了需要弄清楚做每一道菜的流程,还需要了解所做的每一道菜的原料,比如有些原料是要蒸出来才比较好吃,有些则可能会用炖的方法才比较可口,只有掌握做菜的流程以及了解菜的原料的特点,最后做出来的菜才可口美味。如原创 2013-02-01 13:49:32 · 17346 阅读 · 1 评论 -
05-VTK在图像处理中的应用(8)
5.13 图像平滑图像平滑常用于图像的预处理中,如计算梯度时先对图像进行平滑处理,可以减少噪声对梯度的影响。图像平滑一般是通过模板卷积运算实现。模板可以看做是一个大小为nxn的小图像,例如3x3,5x5等等,模板的每个像素都对应一个系数值。模板卷积运算的过程是首先将模板中心依次与图像每个像素重合,通过模板各个系数与图像对应像素相乘来计算模板对应像素的加权平均值,最后将运算结果赋给图像中模板中心原创 2013-01-31 17:01:30 · 8493 阅读 · 0 评论 -
05-VTK在图像处理中的应用(5)
5.8 直方图统计5.8.1 灰度图像直方图直方图统计是图像处理中的一个非常重要的操作。VTK中实现直方图统计功能的filter是vtkImageAccumulate。其将每个组分的数值范围划分为离散的间隔,然后统计每个灰度间隔上的像素数目。vtkImageAccumulate输入和输出都是vtkImageData类型,因此直方图也可以看做是一幅图像;对于输入图像的像素数据类型可以是任意的原创 2013-01-29 16:13:03 · 10081 阅读 · 4 评论 -
05-VTK在图像处理中的应用(4)
5.7 区域提取5.7.1 提取感兴趣区域 感兴趣区域(Volum of Interest)是指图像内部的一个子区域。在VTK中vtkExtractVOI类实现由用户指定的区域范围提取图像的子图像。该Filter的输入和输出都是一个vtkImageData,因此其结果可以直接作为图像保存。 1: vtkSmartPointer reader = 2:原创 2013-01-29 10:31:44 · 16142 阅读 · 8 评论 -
VTK序列图像的读取
医学图像处理的应用程序中,经常会碰到读取一个序列图像的操作。比如CT、MR等所成的图像都是一个切面一个切面地存储的,医学图像处理程序要处理这些数据,第一步当然是把这些数据从磁盘等外部存储介质中导入内存。 利用VTK可以读取多种格式的图像文件,支持读取单个的二维图像(比如*.BMP、*.JPEG、*.PNG等)或者三维图像文件(*.VTK、*.mhd、*.mha等),也支持序列图像原创 2013-05-07 19:50:57 · 11946 阅读 · 5 评论