ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-09-15 14:03:09  阅读:272  来源: 互联网

标签:VTK cylinderActor colors 图像处理 ren renWin import 可视化 vtkmodules


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()

 

标签:VTK,cylinderActor,colors,图像处理,ren,renWin,import,可视化,vtkmodules
来源: https://www.cnblogs.com/windyrainy/p/16696292.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有