VTK图像遮罩(vtkImageMask)

走远了吗. 提交于 2019-12-03 17:19:32

 

#!/usr/bin/env python
import vtk

reader = vtk.vtkJPEGReader()
reader.SetFileName("Pygoscelis adeliae.jpg")
reader.Update()
extent = reader.GetOutput().GetExtent()  

# Create a rectanglular mask
maskSource = vtk.vtkImageCanvasSource2D()
maskSource.SetScalarTypeToUnsignedChar()
maskSource.SetNumberOfScalarComponents(1)
maskSource.SetExtent(extent)
  
# Initialize the mask to black
maskSource.SetDrawColor(0,0,0);
maskSource.FillBox(extent[0],extent[1],extent[2],extent[3])

# Anything non-zero means "make the output pixel equal the input pixel." 
# If the mask is zero, the output pixel is set to MaskedValue
maskSource.SetDrawColor(255,255,255)
maskSource.FillBox(100,200,100,200)
maskSource.Update()
  
mask = vtk.vtkImageMask()
mask.SetImageInputData(reader.GetOutput())
mask.SetMaskInputData(maskSource.GetOutput())
# mask.SetMaskedOutputValue(100,128,200)
mask.NotMaskOn()
mask.Update()
  
imageActor = vtk.vtkImageActor()
imageActor.GetMapper().SetInputConnection(mask.GetOutputPort())
render = vtk.vtkRenderer()
render.AddActor(imageActor)
render.SetBackground(.4, .5, .6)
renderWindow = vtk.vtkRenderWindow()
renderWindow.SetSize(600, 400)
renderWindow.AddRenderer(render)
renderWindow.Render()
renderWindowInteractor = vtk.vtkRenderWindowInteractor()
style = vtk.vtkInteractorStyleImage()
renderWindowInteractor.SetInteractorStyle(style)
renderWindowInteractor.SetRenderWindow(renderWindow)
renderWindowInteractor.Initialize()
renderWindowInteractor.Start()

  

 

 

 

参考:

vtkImageMask Class Reference

VTK/Examples/Cxx/Images/ImageMask

Testing/Python/TestMask2.py

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!