VTK: 三维图像处理和可视化利器
VTK在Java, Tcl, Python中都有接口,本文介绍VTK在Python中的接口
。
VTK (The Visualization Toolkit ) 是一款用于计算机3D成像、构建模型、图像处理、容积渲染、科学数据可视化
等方面的免费软件系统,支持Linux, Windows, Mac, Web, mobile devices等平台;
快速上手
pip install vtk
例子
import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkFiltersSources import vtkCylinderSource from vtkmodules.vtkRenderingCore import (vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer) # 数据准备 colors = vtkNamedColors() bkg = map(lambda x: x / 255.0, [26, 51, 102, 255]) colors.SetColor("BkgColor", *bkg) cylinder = vtkCylinderSource() cylinder.SetResolution(8) # 映射 cylinderMapper = vtkPolyDataMapper() cylinderMapper.SetInputConnection(cylinder.GetOutputPort()) # 添加绘制对象 cylinderActor = vtkActor() #绘制对象添加映射器 cylinderActor.SetMapper(cylinderMapper) cylinderActor.GetProperty().SetColor(colors.GetColor3d("Tomato")) cylinderActor.RotateX(30.0) cylinderActor.RotateY(-45.0) # 添加绘制器 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() ren.ResetCamera() ren.GetActiveCamera().Zoom(1.5) renWin.Render() # 交互器启动 iren.Start()