pcl+vtk(六)vtk简单介绍、渲染流程、简单示例

16 篇文章 3 订阅

一、vtk简单介绍

Vtk(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。

二、vtk渲染流程

流程图如下:

1.vtkSource 数据源

各个类型的图像原始数据。

2.vtkFilter 数据过滤器

对原始数据进行一些操作,转化成可以直接应用算法模块的形式。

3.vtkMapper 数据映射器

将不同的数据类型转换为图形数据,将 vtkFilter 处理后的应用数据映射为几何数据,相当于为原始数据和图像数据之间定义了接口。

vtkGPUVolumeRayCastMapper是一种用于体绘制(Volume Rendering)的mapper,可以将一组体数据(例如CT或MRI扫描数据)转换为渲染后的体绘制图像。该mapper基于GPU的体绘制技术,可以快速生成高质量的渲染图像。因此,它适用于渲染大规模体数据和实时渲染的情况。

vtkPolyDataMapper是一种用于多边形数据(PolyData)的mapper,可以将各种形状的多边形数据(例如点云、网格、曲面等)转换为渲染后的图像。该mapper基于CPU,适用于小规模的多边形数据渲染。

因此,当需要渲染大规模体数据或进行实时渲染时,应该选择vtkGPUVolumeRayCastMapper。而当需要渲染小规模多边形数据时,应该选择vtkPolyDataMapper。体数据和多边形数据是两种不同的数据类型,一般来说,如果你的数据是由像素或体素组成的三维图像,例如CT或MRI扫描数据,那么这就是体数据。而多边形数据则是由三角形、四边形等构成的表面网格数据,例如通过三维建模软件生成的模型。一般来说,体数据的扩展名可能是nii、dcm、mhd等,而多边形数据的扩展名可能是obj、stl、ply等。

4.vtkActor(演员)

执行渲染mapper的对象,用来表示渲染场景下的一个特定物体。

在VTK中,Actor是指将图形数据(例如三维模型、点云等)和其属性(例如颜色、透明度、材质等)结合起来,作为一个可渲染的单元。Actor可以看作是一个“演员”,将图形数据呈现在屏幕上。一个Actor可以包含多个Mapper,但只能有一个属性集合(vtkProperty)。

通过vtkActor,可以设置Actor的位置、旋转、缩放等变换属性,以及设置Actor的可见性、选择性、用户定义的数据等。Actor还可以使用vtkActor2D进行平面图像的显示。

在VTK中,Actor通常与Renderer一起使用,即在Renderer中添加Actor,并将Renderer添加到RenderWindow中进行显示。

5.vtkRender 渲染器

将vtkActor进行加入,用于渲染图像。渲染器控制场景物体渲染过程,渲染过程则是将物体的几何结构、光和摄像机视角转化到图片中。

6.vtkRenderWindow 渲染窗口

将vtkRender进行加入,用于显示成像的窗口。渲染窗口是用户图形界面。

7.vtkInteractor 交互器

用于获取渲染窗口上发生的鼠标,键盘事件,提供了独立于平台的与渲染窗口进行交互的机制

8.vtkProperty​​

修饰vtkActor的属性。

9.vtkCamer

定义视角,焦距,及场景的视觉属性。

10.vtkLight

设置光源。在场景中照亮绘制对象,可通过调用参数改变控制灯光的状态、照射角度、照射强度、颜色等,并支持点光源和平行光源。

三、示例

    //数据源:锥
    vtkSmartPointer<vtkArrowSource> Arrow = vtkSmartPointer<vtkArrowSource>::New();
    //映射器
    vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    //映射器添加数据源
    mapper->SetInputConnection(Arrow->GetOutputPort());
    //演员
    vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
    //设置演员的属性
    actor->GetProperty()->SetColor(0,1,1);
    //演员添加映射器
    actor->SetMapper(mapper);
    //渲染器
    vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
    //渲染器添加演员
    renderer->AddActor(actor);
    //渲染窗口
    vtkNew<vtkGenericOpenGLRenderWindow> renwindow;
    //渲染窗口添加渲染器
    renwindow->AddRenderer(renderer);
    //添加渲染窗口
    ui->vtk_widget->SetRenderWindow(renwindow.Get());

参考文章:

VTK 学习笔记_vtk光照模型-CSDN博客

vtk渲染_vtkrenderwindow_小卡kaka的博客-CSDN博客

VTK 基础(一) — 常用控件介绍及实现圆锥体绘制_wx61e8fd3af30f8的技术博客_51CTO博客

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: vtk8.0.0编译好的库是一个用于可视化和图像处理的开源软件库。这个库是基于C++语言开发的,可以在各种操作系统和各种编译器上使用。在这种情况下,我们假设您是在Windows操作系统上使用Qt 5.9、Visual Studio 2015和PCL 1.8.1来编译和使用vtk8.0.0库。 首先,您需要确保您安装了Qt 5.9,这是一个跨平台的应用程序和UI开发框架。您可以从Qt的官方网站上下载并安装最新版本的Qt 5.9。 接下来,您需要安装Visual Studio 2015,这是一个强大的集成开发环境(IDE),用于编写和调试C++代码。您可以从微软官方网站上下载并安装Visual Studio 2015。 然后,您需要安装PCL 1.8.1,这是一个用于点云处理的开源库。您可以从PCL的官方网站上下载并安装最新版本的PCL 1.8.1。 最后,您需要将vtk8.0.0库与Qt 5.9、Visual Studio 2015和PCL 1.8.1集成在一起。首先,在Visual Studio 2015的项目设置中添加vtk8.0.0的头文件路径和库文件路径。然后,在您的项目代码中包含vtk的头文件,并链接vtk的库文件。 在编译和构建您的项目时,您需要确保选择正确的编译配置,以便使用Qt 5.9、Visual Studio 2015和PCL 1.8.1进行构建。 以上是使用vtk8.0.0库的一般步骤。根据您的具体项目需求,您可能需要进一步的配置和调整。希望这些信息对您有所帮助! ### 回答2: vtk8.0.0编译好的库适用于Qt5.9,VS2015,PCL1.8.1和VTK8.0版本。 首先,vtk8.0.0编译好的库是指已经经过编译,并可用于开发的库文件。该库文件中包含了VTK(Visualization Toolkit,可视化工具包)的功能和特性,可以用于构建和展示3D图像、可视化数据等。 Qt5.9是一个跨平台应用程序开发框架,可以用于创建图形界面和进行应用程序开发。vtk8.0.0编译好的库与Qt5.9兼容,因此可以在Qt应用程序中使用该库实现丰富的3D可视化功能。 VS2015是一个开发环境,适用于Windows操作系统。vtk8.0.0编译好的库是基于VS2015编译的,所以可以在该环境下使用该库进行开发。 PCL1.8.1是点云库(Point Cloud Library)的一个版本。vtk8.0.0编译好的库与PCL1.8.1兼容,可以使用该库来处理和可视化点云数据。 综上所述,vtk8.0.0编译好的库适用于Qt5.9,VS2015,PCL1.8.1和VTK8.0版本,可以在这些环境中使用vtk编译好的库开发和展示3D可视化功能。 ### 回答3: vtk8.0.0 编译好的库是基于以下工具和版本编译的:qt5.9、vs2015、pcl1.8.1以及vtk8.0。 vtk8.0.0是Visualization Toolkit的一个版本,它是一个开源的跨平台的3D图像处理和可视化库。它提供了丰富的功能和工具,用于处理和分析3D数据,并通过高质量的图形输出显示结果。 编译库使用的Qt版本为5.9。Qt是一个跨平台的应用程序开发框架,它提供了一套易于使用的工具和类库,用于开发图形用户界面应用程序。Qt 5.9的使用可以为vtk8.0.0库提供更强的功能和更好的用户体验。 在编译过程中,使用了VS2015作为集成开发环境(IDE)。VS2015是由微软开发的一个功能强大的集成开发环境,用于开发Windows平台上的应用程序。它提供了丰富的开发工具和调试功能,可以方便地进行代码编写和调试。 此外,编译还使用了pcl1.8.1。PCL(Point Cloud Library)是一个开源的用于点云处理的库,它提供了一系列的算法和工具,用于处理和分析点云数据。PCL 1.8.1提供了vtk8.0.0库所需的点云处理功能和支持。 综上所述,vtk8.0.0编译好的库是基于qt5.9、vs2015、pcl1.8.1和vtk8.0的。使用这些工具和库,可以轻松地进行3D图像处理和可视化开发,并获得高质量的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值