• 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()
  • 相关阅读:
    Vijos1986
    vijos1790
    洛谷1005
    洛谷3381
    bzoj4034
    bzoj1564
    bzoj2648
    洛谷3348
    jzoi4964
    codevs3990
  • 原文地址:https://www.cnblogs.com/windyrainy/p/16696292.html
Copyright © 2020-2023  润新知