Skip to content

Commit

Permalink
Merge pull request vmtk#125 from lantiga/master
Browse files Browse the repository at this point in the history
Added vmtkimagebinarize script
  • Loading branch information
lantiga committed Sep 7, 2014
2 parents c440e12 + 322ead1 commit 07efebe
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 0 deletions.
1 change: 1 addition & 0 deletions vmtkScripts/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ SET(SCRIPTS_SRCS
vmtkendpointextractor.py
vmtkflowextensions.py
vmtkicpregistration.py
vmtkimagebinarize.py
vmtkimagecast.py
vmtkimagecompose.py
vmtkimagecurvedmpr.py
Expand Down
70 changes: 70 additions & 0 deletions vmtkScripts/vmtkimagebinarize.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#!/usr/bin/env python

## Program: VMTK
## Module: $RCSfile: vmtkimagebinarize.py,v $
## Language: Python
## Date: $Date: 2006/07/17 09:53:14 $
## Version: $Revision: 1.8 $

## Copyright (c) Luca Antiga, David Steinman. All rights reserved.
## See LICENCE file for details.

## This software is distributed WITHOUT ANY WARRANTY; without even
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
## PURPOSE. See the above copyright notices for more information.


import vtk
import sys

import pypes

vmtkimagebinarize = 'vmtkImageBinarize'

class vmtkImageBinarize(pypes.pypeScript):

def __init__(self):

pypes.pypeScript.__init__(self)

self.Image = None

self.Threshold = 0.0
self.LowerLabel = 0
self.UpperLabel = 1

self.SetScriptName('vmtkimagebinarize')
self.SetScriptDoc('binarize the input image producing a label map')
self.SetInputMembers([
['Image','i','vtkImageData',1,'','the input image','vmtkimagereader'],
['Threshold','threshold','float',1,'','the threshold at which the image should be binarized'],
['LowerLabel','lowerlabel','int',1,'','the label to associate to the pixels lower than the threshold'],
['UpperLabel','upperlabel','int',1,'','the label to associate to the pixels higher than the threshold']
])
self.SetOutputMembers([
['Image','o','vtkImageData',1,'','the output image','vmtkimagewriter']
])

def Execute(self):

if self.Image == None:
self.PrintError('Error: No input image.')

thresholdFilter = vtk.vtkImageThreshold()
thresholdFilter.SetInput(self.Image)
thresholdFilter.ThresholdByUpper(self.Threshold)
thresholdFilter.ReplaceInOn()
thresholdFilter.ReplaceOutOn()
thresholdFilter.SetInValue(self.UpperLabel)
thresholdFilter.SetOutValue(self.LowerLabel)
thresholdFilter.SetOutputScalarTypeToShort()
thresholdFilter.Update()

self.Image = thresholdFilter.GetOutput()


if __name__=='__main__':

main = pypes.pypeMain()
main.Arguments = sys.argv
main.Execute()
1 change: 1 addition & 0 deletions vmtkScripts/vmtkscripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
'vmtkendpointextractor',
'vmtkflowextensions',
'vmtkicpregistration',
'vmtkimagebinarize',
'vmtkimagecast',
'vmtkimagecompose',
'vmtkimagecurvedmpr',
Expand Down

0 comments on commit 07efebe

Please sign in to comment.