首页 > 其他 > 详细

VTK图像遮罩(vtkImageMask)

时间:2019-11-06 14:02:19      阅读:293      评论:0      收藏:0      [点我收藏+]

 

#!/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

VTK图像遮罩(vtkImageMask)

原文:https://www.cnblogs.com/21207-iHome/p/11804351.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!