import pydicom
import vtk
from vtk import vtkInteractionImage
from vtk import vtkInteractionStyle
import time
# Create the RenderWindow, Renderer and both Actors
# coneActor = vtk.vtkActor()
# coneActor.SetMapper( coneMapper )
ren1 = vtk.vtkRenderer()
renWin1 = vtk.vtkRenderWindow()
renWin1.AddRenderer(ren1)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin1)
style = vtk.vtkInteractorStyleTrackballCamera()
iren.SetInteractorStyle(style) # set the UI style
lgt = vtk.vtkLight()
# input the .dicom
v16 = vtk.vtkDICOMImageReader()
v16.SetDataByteOrderToLittleEndian()
v16.SetDirectoryName('D:\work\SRS00003')
v16.SetDataSpacing(3.2, 3.2, 0.5)
locator = vtk.vtkMergePoints()
locator.SetDivisions(32, 32, 46)
locator.SetNumberOfPointsPerBucket(100)
locator.AutomaticOff()
iso = vtk.vtkMarchingCubes()
iso.SetInputConnection(v16.GetOutputPort())
iso.SetValue(0, 150)
iso.ComputeGradientsOn()
iso.ComputeScalarsOff()
iso.SetLocator(locator)
# smooth
smoother = vtk.vtkWindowedSincPolyDataFilter()
smoother.SetInputConnection(iso.GetOutputPort())
smoother.SetNumberOfIterations(90)
normals = vtk.vtkPolyDataNormals()
normals.SetInputConnection(smoother.GetOutputPort())
# normals.SetInputConnection(extrator.GetOutputPort())
normals.SetFeatureAngle(60.0)
# Rang = gradient.GetOutputPort().GetScalarRange()
isoMapper = vtk.vtkDataSetMapper()
isoMapper.SetInputConnection(normals.GetOutputPort())
isoMapper.ScalarVisibilityOff()
isoMapper.SetScalarRange(0, 1200)
isoMapper.SetColorModeToDefault()
isoMapper.ImmediateModeRenderingOn()
isoActor = vtk.vtkActor()
isoActor.SetMapper(isoMapper)
isoActor.GetProperty().SetDiffuseColor(.1, .94, .52)
isoActor.GetProperty().SetSpecular(.3)
isoActor.GetProperty().SetSpecularPower(20)
isoActor.GetProperty().SetColor(1, 0.1, .2)# R G B
outline = vtk.vtkOutlineFilter()
outline.SetInputConnection(v16.GetOutputPort())
outlineMapper = vtk.vtkPolyDataMapper()
outlineMapper.SetInputConnection(outline.GetOutputPort())
outlineActor = vtk.vtkActor()
outlineActor.SetMapper(outlineMapper)
# outlineProp = set(outlineActor.GetProperty())
lgt.SetPosition(1, 1, 1)
ren1.AddActor(outlineActor)
ren1.AddActor(isoActor)
ren1.SetBackground(1, 1, 1)
ren1.AddLight(lgt)
renWin1.SetSize(250, 250)
ren1.SetBackground(1, 1, 1)
aCamera = vtk.vtkCamera()
aCamera.SetViewUp(0, 0, 1)
aCamera.SetPosition(0, 1, 0)
aCamera.SetFocalPoint(0, 0, 0)
# cam1 = set(ren1.GetActiveCamera)
ren1.ResetCamera()
aCamera.Dolly(1.5)
ren1.ResetCameraClippingRange()
renWin1.Render()
# show the window
iren.Initialize()
iren.Start()
MC.zip_VTK python_python vtk_python 医学图像_vtk_医学图像
版权申诉
169 浏览量
2022-09-24
22:49:55
上传
评论 1
收藏 1KB ZIP 举报
JaniceLu
- 粉丝: 78
- 资源: 1万+
最新资源
- 信呼OA系统2.1.7版源码
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
- 发那科工业机器人保养大全
- Sphere.h
- REMD固有时间尺度分解信号分量可视化(Matlab完整源码和数据)
- 嵌入式系统双单片机STC89C52+STC15W104多功能学习板电路图可扩展 适用于单片机初学者和教学
- 基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)大赛作品
- XILINXFPGA源码基于Spartan3火龙刀系列FPGA开发板VGA测试例程
- Java聊天室的设计与实现【尚学堂·百战程序员】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0