[Insight-users] Release Data in MultiResolutionPDEDeformableRegistration

Thomas Albrecht Thomas.Albrecht at unibas.ch
Mon Aug 7 11:01:45 EDT 2006


Hi,

I noticed that when using the MultiResolutionPDEDeformableRegistration 
filter on input images whose DataReleaseFlags are set to true, the input 
images are not released until the very end of the registration, even 
though they are never again used after the multiresolution pyramids are 
created.
This way, the images are gone after the registration anyway but still 
take up memory when they are no longer needed, during the registration, 
which itself needs as much memory as possible.

I suggest the following changes: In the file 
itkMultiResolutionPDEDeformableRegistration.txx, just before the 
creation of the multiresolution pyramids (Line number 237 on ITK 2.6) in 
the function GenerateData(), add the following line:

  this->RestoreInputReleaseDataFlags();

Thus the ReleaseDataFlags of the input images, which are by default set 
to false during the execution of GenerateData(), are restored and so 
after the following lines (see below), the input images are released 
from memory, iff their ReleaseDataFlags were set to true before the 
registration was started.
 
  // Create the image pyramids.
  m_MovingImagePyramid->SetInput( movingImage );
  m_MovingImagePyramid->UpdateLargestPossibleRegion();
 
  m_FixedImagePyramid->SetInput( fixedImage );
  m_FixedImagePyramid->UpdateLargestPossibleRegion();

I tested this modified version of 
itkMultiResolutionPDEDeformableRegistration.txx and it seems to work 
fine. It looks like the input images are really never used again after 
the multiresolution pyramids are created.

Does anyone have any comments? Should this change be incorporated into 
the current CVS version of the code?

Bye

Tom


More information about the Insight-users mailing list