VTK使用

入门参考的这篇(修改了很多):QT加载显示DICOM文件浏览
但还是必须在main()中先读文件再show,先show了再打开文件是黑的显示不出来(后续再查)。

//.h中要加入
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL);//.cpp中 
#include "vtkCamera.h"
#include "vtkImageData.h"void TestQtGui::SetFileName(const std::string& file)
{m_fileName = file;m_reader->SetFileName(m_fileName.c_str());m_reader->Update();m_actor->InterpolateOn();// 使用差值平滑处理,更有利于用户看清楚m_actor->SetInputData(m_reader->GetOutput());m_actor->SetOrientation(0, 1, 0);m_actor->Update();m_renderer->AddActor(m_actor);m_renderWindow->AddRenderer(m_renderer); ui->openGLWidget->SetRenderWindow(m_renderWindow);  //QVTKOpenGLWidget//	QVTKInteractor* interactor = ui.openGLWidget->GetInteractor();vtkRenderWindowInteractor *interactor = ui->openGLWidget->GetInteractor();interactor->SetInteractorStyle(m_interactorStyle);interactor->SetRenderWindow(m_renderWindow);//下面两个都能实现重新打开文件的渲染
//	interactor->GetRenderWindow->Render();ui->openGLWidget->GetRenderWindow->Render();interactor->Start();
}

VTK 多平面重建(MPR)及三维切片显示
BestMPRBaseVtk-005-翻车加修车
VTK教程系列:VTK基础及应用开发教程

一、基本流程

VTK 的可视化流程将需要处理的数据视作流动介质在管道中流动,因此可视化的不同阶段的数据将会有不同的处理方式,图形模型与可视化模型的结合构成了 VTK的可视化管线。
可视化模型主要用来对拟合后的数据进行处理,生成可被VTK绘制的几何形体,它包括处理对象(vtkProcessObject)与数据对象(vtkDataObject)。数据对象用于表达各种类型的数据,处理对象作用于过滤器(Filter),被用来对数据对象进行相关操作并产生新的数据对象;图形模型主要对生成的几何体进行绘制,包括相机(vtkCamera)、映射器(vtkMapper)、对象属性(vtkProperty)、灯光(vtkLight)、渲染器(vtkRenderer)、演示对象(vtkActor)及渲染窗口(vtkRenderWindows)。
在 VTK 管线中的数据流两个基本的对象[44]:流程对象(Process Object)与数据对象(Data Object)。数据对象的数据类型有许多,其父类为 vtkDataSet 类,数据结构有标准的格式。VTK 支持的数据类型有:结构网格(vtkStructureGrid)、结构点(vtkStructurePoint)、多边形数据(vtkPolyData)、非结构网格(vtkUnStructureGrid)及非结构点(vtkUnStructurePoint)等。流程对象运用数据的系统级运算法则对数据对象进行操作用来生成新的数据对象。流程对象根据其作用可分为映射对象(Mapper)、过滤器对象(Filter)以及源对象(Source)。

#include <vtkSphereSource.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>int main()
{//sourcevtkSmartPointer<vtkSphereSource> sphereSource =	vtkSmartPointer<vtkSphereSource>::New();sphereSource->Update();//mapvtkSmartPointer<vtkPolyDataMapper> mapper =	vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(sphereSource->GetOutputPort());//actorvtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);//renderervtkSmartPointer<vtkRenderer> renderer =	vtkSmartPointer<vtkRenderer>::New();//renderWindowvtkSmartPointer<vtkRenderWindow> renderWindow =	vtkSmartPointer<vtkRenderWindow>::New();renderWindow->SetWindowName("Sphere");renderWindow->AddRenderer(renderer);  //window加入render//interactorvtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =	vtkSmartPointer<vtkRenderWindowInteractor>::New();renderWindowInteractor->SetRenderWindow(renderWindow);renderer->AddActor(actor);renderWindow->Render();      //这是关键的渲染render,否则不出图renderWindowInteractor->Start();return 0;
}
vtkConeSource     *cone       = vtkConeSource::New();     //source
vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New(); //map
vtkActor          *coneActor  = vtkActor::New();          //actor
vtkRenderer       *ren1       = vtkRenderer::New();       //renderer
vtkRenderWindow   *renWin     = vtkRenderWindow::New();   //renderWindow
renWin->AddRenderer( ren1 );
vtkConeSource *cone = vtkConeSource::New();cone->SetHeight( 3.0 );cone->SetRadius( 1.0 );cone->SetResolution( 10 );   //准备需要渲染的数据vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();  //创建映射器coneMapper->SetInputConnection( cone->GetOutputPort() );   //将准备的数据连接到映射器vtkActor *coneActor = vtkActor::New();coneActor->SetMapper( coneMapper );  //创建一个演员来代表数据vtkRenderer *ren1= vtkRenderer::New();ren1->AddActor( coneActor );  //创建一个渲染器添加演员ren1->SetBackground( 0.1, 0.2, 0.4 );  //设置背景色// 创建渲染窗口来显示数据vtkRenderWindow *renWin = vtkRenderWindow::New();renWin->AddRenderer( ren1 );renWin->SetSize( 300, 300 );  //设置渲染窗口的大小// 接下来将actor逐渐旋转,每次旋转1°int i;for (i = 0; i < 360; ++i){renWin->Render();// 每次旋转1°ren1->GetActiveCamera()->Azimuth( 1 );}

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

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

相关文章

VTK教程3--------打开vtk文件

下面&#xff0c;本教程将介绍如何在MFC下打开vtk文件&#xff0c;最终的效果如图所示&#xff1a; 如果你看过一些三维重建相关的论文&#xff0c;那么一定对这个图像很熟悉。很多论文都会以这个图像作为例子讲解&#xff0c;好了&#xff0c;闲话少说&#xff0c;直接讲实现…

Android中读取电话本Contacts联系人的所有电话号信息

1.首先&#xff0c;要知道android 的contacts里的电话信息有多类&#xff1a;moblie,家庭&#xff0c;工作&#xff0c;传真等。如图&#xff1a; 2.android的Contacts是通过ContentProvider来提供的&#xff0c;其实android把contacts和SMS给组织成数据库文件了&#xff0c;你…

虚拟化 : VT-x VT-d VT-c的分别

虚拟化 &#xff1a; VT-x VT-d VT-c的分别: VT-x [运行ESXI上的64bit Guest OS基本指令] Intel运用Virtualization虚拟化技术中的一个指令集。VT-x有助于提高基于软件的虚拟化解决方案的灵活性与稳定性。通过按照纯软件虚拟化的要求消除虚拟机监视器(VMM&#xff09;代表…

VTK-vtkPolyDataNormals

前言&#xff1a;本博文主要记录vtkPolyDataNormals的用途&#xff0c;使用方法以及实现原理&#xff0c;帮助更多的小伙伴更好的理解和应用vtk。 目录 1. vtkPolyDataNormals 2. 使用示例 3. 实现原理 1. vtkPolyDataNormals vtkPolyDataNormals可以计算多边形网格数据的点…

手机联系人批量导入(字符编码、xlsx与vcf互转)

一、前言 单位同事每人都办理了一个192新手机号&#xff0c;一打过来不知道是谁&#xff0c;又懒的一个个保存姓名。一想是不是可以批量导入呢?电子表格号码名单我有啊&#xff0c;试试吧。 二、实践 1.先下载手机联系人文件看看吧。在手机联系人设置中有个导出选项&#x…

信创干部人事档案管理系统单机版 - 人力资源档案管理系统软件

信创干部人事档案管理系统单机版v2.0&#xff08;以下简称系统&#xff09;&#xff0c;是一套具有先进性、安全性、前瞻性的人力资源档案管理系统&#xff0c;是在总结近二十年为万余家单位档案信息化建设实践经验的基础上&#xff0c;遵循ISO15489、ISO23081、ISO14721等国际…

VTK-vtkFieldData

欢迎大家加入社区&#xff0c;雪易VTK社区-CSDN社区云 前言&#xff1a;为区分vtkPoints和vtkPointData的区别&#xff0c;了解vtkFieldData在VTK中的存在意义&#xff0c;从而系统的掌握vtk中关于数据的表达方式。 vtk中通过vtkDataArray进行数据的存储&#xff0c;通过vtkD…

虚拟内存统计----Vmstat命令

目录 一、Vmstat命令 概述 1.1 物理内存和虚拟内存区别 1.1.1 物理内存 1.1.2 虚拟内存 1.2 vmstat 命令语法 1.2.1 格式 1.2.2 命令参数 二、 vmstat 示例 2.1 显示虚拟内存使用情况 2.1.1 查看 2.1.2 表示在1秒时间内进行2次采样 2.1.3 指定的MB 单位输…

票据机器人-OCR自动识别助力智能财务

当前票据的数字化问题尚未完全解决&#xff0c;人工处理海量票据的工作量较大&#xff0c;把票据录入系统、校验真伪的成本较高。 票据机器人对财务报销环节涉及的增票、火车票、飞机行程单、出租车票、定额发票、汽车票等票据进行自动分类、识别录入、验真及归档。 票据机器人…

第一次申请去美国面签,需要注意哪些事项提高成功率?

Teresa &#xff0c;PM 296 人赞同 哈哈哈&#xff0c;作为一个刚毕业的无房无车无钱妹纸&#xff0c;刚顺利拿到美国旅游十年签证&#xff01;我要去西雅图看TI5啦&#xff01;整个过程耗时两周~~~热乎乎的攻略奉上~~ 所有问题都可在官网进行查询&#xff0c;请熟读此网站&am…

java行程单解析获取内容_java如何抓取网页上的动态信息,获取源代码后如何分析JS?...

首先明确我指的动态数据是什么。 名词定义&#xff1a;动态数据在这里指的是网页中由Javascript动态生成的页面内容&#xff0c;即网页源文件中没有&#xff0c;在页面加载到浏览器后动态生成的。 下面进入正题。 抓取静态页面很简单&#xff0c;通过Java获取到html源码&#x…

系统采集--行程单、火车票、汽车票方案

方案一&#xff1a;进项旅客运输采集&#xff08;行程单、火车票、汽车票&#xff09; 实现步骤&#xff1a; 建立视图&#xff08;view_trip、view_trip、view_car&#xff09;&#xff0c;其中视图中税号需要关联组织表获取&#xff1b;后台&#xff1a;根据当前组织id去组…

百望云入选电子凭证会计数据标准深化试点服务保障单位 打通数字化“最后一公里”

电子凭证试点正在加速推进中&#xff01; 近日&#xff0c;财政部会同税务总局、人民银行、国务院国资委、国家档案局、标准委、国电联办、民航局、国铁集团9部委&#xff0c;组织召开电子凭证会计数据标准深化试点启动会。 之后&#xff0c;财政部会计司相继发布《关于公布电子…

【云驻共创】华为云文字识别服务的体验之旅

文章目录 前言一、初识OCR技术1.文字识别技术的概念1.1 文字识别&#xff08;OCR&#xff09;介绍1.2 文字识别&#xff08;OCR&#xff09;应用场景 2.文字识别技术的发展历程2.1 OCR识别领域发展历程2.1.1 西文OCR2.1.1 Tesseract2.1.3 LeNet2.1.4 深度学习OCR 2.2 OCR识别流…

Python自动化办公(一) :滴滴行程单信息提取存入excel表格 2021-04-13

ython自动化办公&#xff08;一&#xff09;:滴滴行程单信息提取存入excel表格 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目…

智能客服“听不懂人话”?消费者很“闹心”

智能客服与人工客服并非互相取代的关系。人工客服不能缺位&#xff0c;应通过人机协同更好地回应消费者诉求。在金融消费领域&#xff0c;建议与资金安全等密切相关的业务能够设置人工服务“一键转接”或者“一键冻结”功能&#xff0c;保障消费者财产安全&#xff1b;为“银发…

让ChatGPT调用10万+开源AI模型!HuggingFace新功能爆火:大模型可随取随用多模态AI工具...

萧箫 发自 凹非寺量子位 | 公众号 QbitAI 只需和ChatGPT聊聊天&#xff0c;它就能帮你调用10万个HuggingFace模型&#xff01; 这是抱抱脸最新上线的功能HuggingFace Transformers Agents&#xff0c;一经推出就获得极大关注&#xff1a; 这个功能&#xff0c;相当于给ChatGPT等…

chatgpt赋能python:用Python编写录音代码:打造高效音频处理工具

用Python编写录音代码&#xff1a;打造高效音频处理工具 Python已经成为数据科学、人工智能和机器学习的首选编程语言&#xff0c;因此它也是制作音频处理工具的完美选择。Python编程语言简单易学&#xff0c;并能够快速实现高效的音频处理。通过使用Python&#xff0c;您可以…

如何把图片去水印?来试试这三种图片去水印的方法

如何把图片去水印&#xff1f;来试试这三种图片去水印的方法 相信大家在日常上网的时候&#xff0c;看到一些漂亮的图片时&#xff0c;想将它们保存下来&#xff0c;但又碍于图片带有水印不得不放弃。但其实我们是可以通过一些方法将图片中的水印给去除掉&#xff0c;那我们该…

什么软件去图片水印不留痕迹?三款图片去水印软件分享

我们在设计海报或者易拉宝时&#xff0c;偶尔需要用到网上的图片&#xff0c;但是一些图片加了水印&#xff0c;我们没法用&#xff0c;这个时候你们知道什么软件去图片水印好吗&#xff1f;我朋友跟我说下面这三个软件去图片水印很厉害&#xff0c;我试过了&#xff0c;真的很…