VTK [python] 入门

1. VTK简介

可视化工具包(VTK: The Visualization Toolkit)是一个开源的、免费的软件系统,用于计算机三维图形、建模、图像处理、体绘制、科学可视化和2D绘图。它支持各种可视化算法和高级建模技术,并分别利用线程和分布式内存并行处理的速度和可伸缩性。

VTK支持多平台运行,可以在Linux、Windows、Mac、Web和移动设备上运行。

2. 动手学VTK

2.1 安装

如果你在使用Anaconda:打开Anaconda Prompt (Anaconda3),激活你要安装的环境后安装vtk

conda install vtk

也可使用pip安装vtk

pip install vtk

2.2 VTK流程简介

绘制几何体的流程:

  • Source/Data:创建内容,需要可视化的几何体等

  • Mapper:映射器,把vtk的数据传给openGL

  • Actor:把前面准备的几何体造出来

  • Render:将图形渲染出来,在窗口中展示出来

  • Window:设置对应窗口的操作,比如旋转

  • Interactor:与窗口的交互设置

绘制图片的流程:

  • Reader:读入图片
  • Filter:对图像进行处理
  • Viewer:展示处理过的图片

vtk的pipeline的实现是通过对前一步的对象拷贝得到的,因此很容易占内存。在执行到Write() 或者 Render()之前,所显示的图像是不会更新的。每个类都会带有一个Update()可以强迫这个类的数据进行更新。由此可见vtk的整个流程并不是像flow一样,而是一层一层拷贝而来的。

2.3 官网示例

A hello world example(来自VTK教科书和源代码的圆柱体实例)

PS: 至于为什么叫hello world,我猜可能是代表入门/你跑的第一个VTK代码的意思,同第一次学习编程语言都是从print("Hello, world! ")开始的

#!/usr/bin/env python

# 这个例子创建了一个最小的可视化程序,演示了 VTK 的基本渲染和管道创建。

# noinspection PyUnresolvedReferences
import vtkmodules.vtkInteractionStyle
# noinspection PyUnresolvedReferences
import vtkmodules.vtkRenderingOpenGL2
from vtkmodules.vtkCommonColor import vtkNamedColors
from vtkmodules.vtkFiltersSources import vtkCylinderSource
from vtkmodules.vtkRenderingCore import (
    vtkActor,
    vtkPolyDataMapper,
    vtkRenderWindow,
    vtkRenderWindowInteractor,
    vtkRenderer
)


def main():

    # ---------------数据准备-----------------
    colors = vtkNamedColors()
    # 设置背景颜色
    bkg = map(lambda x: x / 255.0, [26, 51, 102, 255])
    colors.SetColor("BkgColor", *bkg)
    # 创建一个有八个面的多边形圆柱体模型
    cylinder = vtkCylinderSource()
    cylinder.SetResolution(8)

    # -----------------映射-------------------
    # 映射器(mapper)将几何体放入图形库,也可以做颜色映射
    cylinderMapper = vtkPolyDataMapper()
    cylinderMapper.SetInputConnection(cylinder.GetOutputPort())

    # ------actor是一个分组机制:除了几何(映射器),它还具有属性、变换矩阵和/或纹理映射
    # ----------------这里我们设置它的颜色并旋转-22.5度------------
    # 添加绘制对象
    cylinderActor = vtkActor()
    # 绘制对象添加映射器
    cylinderActor.SetMapper(cylinderMapper)
    cylinderActor.GetProperty().SetColor(colors.GetColor3d("Tomato"))
    cylinderActor.RotateX(30.0)
    cylinderActor.RotateY(-45.0)

    # ----------创建图形结构。渲染器(renderer)呈现到渲染窗口中。---------
    # ----------渲染窗口交互器捕获鼠标的动作,并执行相应操作。------------
    # 添加绘制器
    ren = vtkRenderer()
    # 添加绘制窗口
    renWin = vtkRenderWindow()
    renWin.AddRenderer(ren)
    iren = vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    # 绘制器添加对象,设置背景和尺寸大小
    ren.AddActor(cylinderActor)
    ren.SetBackground(colors.GetColor3d("BkgColor"))
    renWin.SetSize(300, 300)
    renWin.SetWindowName('CylinderExample')

    # --------------------交互器初始化--------------------------
    iren.Initialize()
    # 通过访问相机并调用"Zoom"来放大
    ren.ResetCamera()
    ren.GetActiveCamera().Zoom(1.5)
    renWin.Render()

    # 交互器启动
    iren.Start()


if __name__ == '__main__':
    main()

Reference:

[1] VTK - The Visualization Toolkit

[2] ​​​​​​vtk学习笔记 - 简书

[3] https://kitware.github.io/vtk-examples/site/Python/

[4] 【Python】VTK: 三维图像处理和可视化利器

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以在官方网站上找到VTK Python Demo的下载链接。首先,打开你的网络浏览器,然后搜索“VTK Python Demo下载”。在搜索结果中,你会找到VTK官方网站的链接,点击进入。在官方网站上,你可以找到VTK Python Demo的下载页面,通常会有一个“Download”或者“Get started”按钮,点击即可开始下载。在下载页面,你可能需要选择适合你操作系统的版本,比如Windows、MacOS或者Linux等。下载完成后,你可以按照官方提供的安装指南进行安装和配置。 VTK Python Demo是一个用Python编程语言编写的演示程序,主要用于展示VTK(Visualization Toolkit)的功能和特性。VTK是一个用于科学可视化、图像处理和计算几何学的开源软件库,它提供了丰富的功能和工具,可以帮助用户进行数据可视化和分析。VTK Python Demo的下载和安装可以让你快速体验VTK的强大功能,学习如何使用Python编程语言和VTK库进行科学可视化和数据处理。 通过下载VTK Python Demo,你可以学习如何使用VTK进行三维可视化、体绘制、数据重构和图像处理等操作。同时,你也可以参考官方提供的示例代码和文档,快速上手VTK的应用开发。无论你是科学研究人员、工程师还是学生,VTK Python Demo都可以帮助你更好地理解和应用VTK库,提升你的数据可视化和科学计算能力。希望你能顺利下载和安装VTK Python Demo,并从中受益!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yxzhao_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值