【转】VTK修炼之道1_初识VTK

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 geometry

Graphics Model:rendering

一般可视化流程可以详细表述为

绘图过程( Graphics Model ):目的是将图形原语在屏幕上显示。

下面举一个典型的例子来理解Actor:

 

用伪代码来表征这个过程为:

Main() { create a window; create a renderer;  give the rendererto  the window;create procedural geometry; create a mapper; give the geometryto 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();
//MC
vtkMarchingCubes *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在图像处理、虚拟现实、计算机图形学中的应用

图像处理:

       

虚拟现实:

      

计算机图形:

       

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTPS原理和对中间件攻击的预防

一、https/tls原理 HTTPS访问的三个阶段 第一阶段 认证站点 客户端向站点发起HTTPS请求,站点返回数字证书。客户端通过数字证书验证所访问的站点是真实的目标站点。 第二阶段 协商密钥 客户端与站点服务器协商此次会话的对称加密密钥,用于下一阶段的加…

HTTPS原理全面介绍【备查】

来源:https://www.cnblogs.com/haimishasha/p/11373034.html 目录 应用层协议:HTTPS 1. HTTPS定义 2. 密码学基础  3. HTTP通信问题 4. SSL/TLS协议 5. HTTP 向 HTTPS 演化的过程 5.1 对称加密 5.2 非对称加密 5.3 对称加密非对称加密 5.4 安…

【转】VTK修炼之道2_VTK体系结构1

1.OverView综述 The Visualization Toolkit consists of two basic subsystems: a compiled C class library (一个已经编译好的C类库)and an “interpreted” wrapper layer(一个用于解释的语言层) that lets you manipulate the…

WINCE6.0 DM.EXE 激活驱动失败的原因之一

前些天把WINCE6.0的开发环境建好了,今天定制了一个系统,练习了一下驱动的编写和调试。把DLL文件通过VS2005部署到开发板上,用一位大侠写的DM.EXE工具进行激活,但是发现点击激活按钮式无反应,驱动还是停在“停用”状态&…

Linux:tomcat安装/版本升级

本文适用于安装或更新tomcat版本。 1.进入tomcat目录,查看当前tomcat版本 cd /usr/local/tomcat/bin ./version.sh 2.备份原tomcat 可以拷贝原tomcat,或者直接修改原tomcat的文件夹名称作为备份。 cd /usr/local/ #方法1:创建目录&…

【转】VTK与Qt整合的示例

VTK与Qt整合的示例 VTK附带的程序示例中大多是基于控制台的,作为可视化开发工具包,VTK也可以与很多流行的GUI开发工具整合,比如MFC、Qt(题外话:Qt已经被Digia从诺基亚手中收购了,Qt现在的链接是:http://qt…

WinCE驱动调试助手V2.5

http://www.cnblogs.com/we-hjb/archive/2008/12/15/1280822.html http://blog.chinaunix.net/u1/49088/showart.php?id1279989 工欲善其事,必先利其器。做WinCE驱动的开发已有一段时间了,WinCE驱动调试助手也跟着更新了很多功能。现在只要做驱动&#…

Web应用系统中数据传递的方式汇总

本文转载自sina_blog(siangzhang) 目录 1 Socket方式 2 ftp/文件共享服务器方式 3 数据库共享数据方式 4 message方式 5 案例 随着近年来SOA(面向服务技术架构)的兴起,越来越多的应用系统开始进行分布式的设计和部署。 系统由原来单一…

【转】CT (电子计算机断层扫描)

CT(Computed Tomography),即电子计算机断层扫描,它是利用精确准直的X线束、γ射线、超声波等,与灵敏度极高的探测器一同围绕人体的某一部位作一个接一个的断面扫描,具有扫描速度快,图像清晰等特点,可用于多…

Linux:chmod命令-修改文件或目录的权限

给新安装的tomcat/bin目录下的所有文件增加执行权限(所有用户、组) chmod -R ax /usr/local/tomcat/bin ------------------------------------------------------------------------------------------------------------------- 关于具体的chmod命令…

【转】详解冠状面_水平面_矢状面_窗宽_窗位

在接触人工智能医疗方面时,单是学习算法和代码原理还不够,需要一定的医学影像知识储备。 B超、CT、MR等都算是医疗影像,在现实生活中,从医院检查身体后拿到的胶片是处理过后的二维图像。这些医疗影像其实是三维的。 最常见的图片格…

js+ asp.Net ajax开发163邮箱效果(列表底色、多选拖动等)--checkBox多选

163邮件一个比较爽的功能就是可以通过多选邮件,拖动到左侧的文件夹列表,实现邮件归类的功能关于我对拖动分配的实现将在后文写出这里说说在CheckBox的选择中做得尝试和实现的效果、方法1。点击表格Title实现全选每行这个早有人做了,我这里借鉴一下 一块贴…

【转】医学图像中的窗宽、窗位!!

在CT等医学影像显示领域,我们经常会听到窗宽(Window Width,简写WW)、窗位(Window Level,简写WL)的概念,那么到底什么是窗宽、窗位,它们跟医学图像之间的关系又是什么? 先说一下CT值…

【Excel】使用VLOOKUP+IF实现多列条件匹配查询

excel中vlookup函数为精准匹配查找,但此函数局限于单列的精准匹配,如果需求是多列条件进行匹配,怎么通过vlookup函数实现呢? 思路:通过if函数将多列拼成一列再通过vlookup函数进行精准匹配 具体公式为VLOOKUP($F2&…

【转】解密Qt安装目录的结构

转自:C语言中文网 强力推荐 网址:http://c.biancheng.net/view/3866.html 了解 Qt 安装目录的结构虽然不是编程必须的,但是它能练就我们的内功,让我们对 Qt 的编程环境了如指掌。Windows 和 Linux 下 Qt 安装目录的结构非常相似…

发一个自己写的2440驱动1602的资料(电路+代码)

上个星期把MINI2440板上的富余数据线引了出来,看着以前丢下的1602突然有了想用ARM9驱动它的冲动,于是就开始干了。 代码是从以前刚学C51的时候改的,呵呵,看见以前写的代码真觉得很烂,现在已经整理好了。 虽说有点牛刀…

【转】10.Qt编程涉及的术语和名词

本节我们来介绍一下使用 Qt 编程过程中常用的术语和名字,它们不一定专属于 Qt,在其它的 C/C 开发过程中也会使用到。 Project Project 的中文翻译是“项目”或者“工程”,这里的项目是指为实现某个相对独立功能的程序代码合集,这…

【转】17.Qt界面布局管理详解

在上一节,通过一个简单的应用程序,分析了 Qt 创建的 GUI 应用程序中各个文件的作用,剖析了可视化设计的UI文件是如何被转换为 C 的类定义,并自动创建界面的。这些是使用 Qt Creator 可视化设计用户界面,并使各个部分融…

SQL Server 清空或删除所有数据库表中的数据

方法一&#xff1a; --生成数据库脚本的方法最快,处理的也最好 sql2000企业管理器 --右键要清理的数据库 --所有任务 --生成SQL脚本 --<常规>里选择"生成全部对象脚本"","在脚本文件中包含说明性标题&quo…

【转】QT介绍

一、Qt介绍 Qt&#xff0c;坦白来说&#xff0c;并不只是一个界面库&#xff0c;他是C编程思想的集大成者。它是一个经过完善的C应用程序框架。使用Qt&#xff0c;在一定程度上你获得的是一个“一站式”、“全方位”的解决方案&#xff0c;STL、string、XML、数据库、网络这些…