2022年 11月 3日

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

VTK在Java, Tcl, Python中都有接口,本文介绍VTK在Python中的接口

VTK (The Visualization Toolkit ) 是一款用于计算机3D成像、构建模型、图像处理、容积渲染、科学数据可视化等方面的免费软件系统,支持Linux, Windows, Mac, Web, mobile devices等平台;

一些常见使用场景👇👇

4661ec90910f171df7f6df6198644b1f.png

3D成像
7236ea09e77cef6ae1d7a697c391c930.png
图像处理1
bd6ac9fb261d1b0506a282857cc983be.png
图像处理2
ce73cfa17c064081ea2945ab1513eb17.png
构建模型
4e0582aa8e2d80d84b3b305b59d1a084.png
容积渲染

下面简单介绍VTK如何快速上手,

安装

pip install vtk

快速入门VTK

以一个小为例,

  1. import vtkmodules.vtkInteractionStyle
  2. import vtkmodules.vtkRenderingOpenGL2
  3. from vtkmodules.vtkCommonColor import vtkNamedColors
  4. from vtkmodules.vtkFiltersSources import vtkCylinderSource
  5. from vtkmodules.vtkRenderingCore import (vtkActor, vtkPolyDataMapper,
  6.                                          vtkRenderWindow,
  7.                                          vtkRenderWindowInteractor,
  8.                                          vtkRenderer)
  9. # 数据准备
  10. colors = vtkNamedColors()
  11. bkg = map(lambda x: x / 255.0, [2651102255])
  12. colors.SetColor("BkgColor", *bkg)
  13. cylinder = vtkCylinderSource()
  14. cylinder.SetResolution(8)
  15. # 映射
  16. cylinderMapper = vtkPolyDataMapper()
  17. cylinderMapper.SetInputConnection(cylinder.GetOutputPort())
  18. # 添加绘制对象
  19. cylinderActor = vtkActor()
  20. #绘制对象添加映射器
  21. cylinderActor.SetMapper(cylinderMapper)
  22. cylinderActor.GetProperty().SetColor(colors.GetColor3d("Tomato"))
  23. cylinderActor.RotateX(30.0)
  24. cylinderActor.RotateY(-45.0)
  25. # 添加绘制器
  26. ren = vtkRenderer()
  27. # 添加绘制窗口
  28. renWin = vtkRenderWindow()
  29. renWin.AddRenderer(ren)
  30. iren = vtkRenderWindowInteractor()
  31. iren.SetRenderWindow(renWin)
  32. # 绘制器添加对象
  33. ren.AddActor(cylinderActor)
  34. ren.SetBackground(colors.GetColor3d("BkgColor"))
  35. renWin.SetSize(300300)
  36. renWin.SetWindowName('CylinderExample')
  37. # 交互器初始化
  38. iren.Initialize()
  39. ren.ResetCamera()
  40. ren.GetActiveCamera().Zoom(1.5)
  41. renWin.Render()
  42. # 交互器启动
  43. iren.Start()

154b0aa067ec3fcb153822296945cfbd.png进一步学习👇👇
https://kitware.github.io/vtk-examples/site/Python/


-END-

48cd7f2bb2e500774146cc518b2bdfc9.png





  1. 往期精彩回顾
  2. 适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
  3. AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

本站qq群554839127,加入微信群请扫码:

685a778f551c2ce7cd5c13c0d442e216.png