SimpleITK  1.0.1
FilterProgressReporting/FilterProgressReporting.py
1 #!/usr/bin/env python
2 #=========================================================================
3 #
4 # Copyright Insight Software Consortium
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0.txt
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 #=========================================================================
19 
20 from __future__ import print_function
21 
22 import SimpleITK as sitk
23 import sys
24 import os
25 
26 if len ( sys.argv ) < 4:
27  print( "Usage: "+sys.argv[0]+ " <input> <variance> <output>" )
28  sys.exit ( 1 )
29 
30 ##! [python director command]
31 class MyCommand(sitk.Command):
32  def __init__(self, po):
33  # required
34  super(MyCommand,self).__init__()
35  self.processObject = po
36 
37  def Execute(self):
38  print("{0} Progress: {1:1.2f}".format(self.processObject.GetName(),self.processObject.GetProgress()))
39 ##! [python director command]
40 
41 reader = sitk.ImageFileReader()
42 reader.SetFileName ( sys.argv[1] )
43 image = reader.Execute()
44 
45 pixelID = image.GetPixelID()
46 
48 gaussian.SetVariance( float ( sys.argv[2] ) )
49 
50 
51 ##! [python lambda command]
52 gaussian.AddCommand(sitk.sitkStartEvent, lambda: print("StartEvent"))
53 gaussian.AddCommand(sitk.sitkEndEvent, lambda: print("EndEvent"))
54 ##! [python lambda command]
55 
56 cmd = MyCommand(gaussian)
57 gaussian.AddCommand(sitk.sitkProgressEvent, cmd)
58 
59 image = gaussian.Execute ( image )
60 
61 caster = sitk.CastImageFilter()
62 caster.SetOutputPixelType( pixelID )
63 image = caster.Execute( image )
64 
65 writer = sitk.ImageFileWriter()
66 writer.SetFileName ( sys.argv[3] )
67 writer.Execute ( image );
68 
69 
70 if ( not "SITK_NOSHOW" in os.environ ):
71  sitk.Show( image, "Simple Gaussian" )