from __future__ import print_function import SimpleITK as sitk print(sitk.Version()) import sys import os import threading from myshow import myshow from myshow import myshow3d # hit tab-tab to reveal suggested completions sitk.sitk help(sitk.PyCommand) cmd = sitk.PyCommand() cmd.SetCommandCallable( lambda: print("PyCommand Called") ) cmd.Execute() size=128 img = sitk.GaborSource(sitk.sitkFloat32, size=[size]*3, sigma=[size*.2]*3, mean=[size*0.5]*3, frequency=.1) myshow3d(img,zslices=[size/2],dpi=40); help(sitk.ProcessObject) gFilter=sitk.DiscreteGaussianImageFilter() gFilter.SetVariance(100) gFilter.AddCommand(sitk.sitkStartEvent, cmd) gFilter.Execute(img) gFilter.RemoveAllCommands() gFilter.AddCommand(sitk.sitkStartEvent, lambda: print("Starting...",end='')) gFilter.AddCommand(sitk.sitkStartEvent, lambda: sys.stdout.flush()) gFilter.AddCommand(sitk.sitkEndEvent, lambda: print("Done")) gFilter.Execute(img) gFilter.RemoveAllCommands() gFilter.AddCommand(sitk.sitkProgressEvent, lambda: print("\rProgress: {0:03.1f}%...".format(100*gFilter.GetProgress()),end='')) gFilter.AddCommand(sitk.sitkProgressEvent, lambda: sys.stdout.flush()) gFilter.AddCommand(sitk.sitkEndEvent, lambda: print("Done")) gFilter.Execute(img) import uuid from IPython.display import HTML, Javascript, display divid = str(uuid.uuid4()) html_progress="""

FilterName:

 
""".format(divid) def command_js_progress(processObject): p = processObject.GetProgress() display(Javascript("$('div#%s').width('%i%%')" % (divid, int(p*100)))) gFilter.RemoveAllCommands() gFilter.AddCommand(sitk.sitkStartEvent, lambda: display(HTML(html_progress))) gFilter.AddCommand(sitk.sitkProgressEvent, lambda: command_js_progress(gFilter)) gFilter.Execute(img) import uuid from IPython.display import HTML, Javascript, display g_Abort = False divid = str(uuid.uuid4()) html_progress_abort="""

FilterName:

 
""".format(divid) javascript_abort = """ """ def command_js_progress_abort(processObject): p = processObject.GetProgress() display(Javascript("$('div#%s').width('%i%%')" % (divid, int(p*100)))) if g_Abort: processObject.Abort() def command_js_start_abort(): g_Abort=False g_Abort=False gFilter.RemoveAllCommands() gFilter.AddCommand(sitk.sitkStartEvent, command_js_start_abort ) gFilter.AddCommand(sitk.sitkStartEvent, lambda: display(HTML(html_progress_abort+javascript_abort))) gFilter.AddCommand(sitk.sitkProgressEvent, lambda: command_js_progress_abort(gFilter)) import threading threading.Thread( target=lambda:gFilter.Execute(img) ).start() threading.Thread( target=lambda:gFilter.Execute(img) ).start()