Soren Christensen
2018-05-05 22:07:25 UTC
Hi,
I am trying to monitor the progress of a levelset filter using
a Progressevent callback.
I am thresholding the level set output with a thresholding filter and this
works as expected in terms of the end results.
However, I am trying to monitor the progress of a levelset filter using
a Progressevent callback and it is not working inside the progressevent
callback.
Here's the code:
....
Set up level and threshold filter
...
#define call back function
def myCommand():
global k
if k % 10==0:
thresholder.Update()
print(levelsetfilter.GetMTime()) #print mtime for levelset filter and then
thresholdfilter
print(thresholder.GetMTime())
print("----")
save_rgb(levelsetfilter.GetOutput(),'mont' + str(k)+ '.png')
k=k+1
k=0
levelsetfilter.AddObserver(itk.ProgressEvent(), myCommand )
levelsetfilter.Update()
The output from the print statements are:
18702 *18145* ---- 18738 *18145* ---- 18765 *18145* ---- 18792 *18145* ----
18819 *18145* ...
...
...
So the mtime for the threshold filter never gets modified when inside the
call back.
What is the reason for this? Is there something particular about the
execution pipeline when inside a callback like this?
Thanks!
Soren
I am trying to monitor the progress of a levelset filter using
a Progressevent callback.
I am thresholding the level set output with a thresholding filter and this
works as expected in terms of the end results.
However, I am trying to monitor the progress of a levelset filter using
a Progressevent callback and it is not working inside the progressevent
callback.
Here's the code:
....
Set up level and threshold filter
...
#define call back function
def myCommand():
global k
if k % 10==0:
thresholder.Update()
print(levelsetfilter.GetMTime()) #print mtime for levelset filter and then
thresholdfilter
print(thresholder.GetMTime())
print("----")
save_rgb(levelsetfilter.GetOutput(),'mont' + str(k)+ '.png')
k=k+1
k=0
levelsetfilter.AddObserver(itk.ProgressEvent(), myCommand )
levelsetfilter.Update()
The output from the print statements are:
18702 *18145* ---- 18738 *18145* ---- 18765 *18145* ---- 18792 *18145* ----
18819 *18145* ...
...
...
So the mtime for the threshold filter never gets modified when inside the
call back.
What is the reason for this? Is there something particular about the
execution pipeline when inside a callback like this?
Thanks!
Soren