[Insight-users] Bug (?) in MultiResolutionImageRegistrationMethod (FixedImageRegion issue)

Luc Bracoud lbracoud@theralys.com
Mon, 16 Sep 2002 11:14:36 +0200


Hi,

I've been using ITK for a few months in order to register various type 
of data, through a pipeline inspired from MultiResMIRegistration example.
I've always been registering "full" images so far (the FixedImageRegion 
being set to the BufferedRegion), and the results were great (after 
"some" parameters tuning.... :-)).
But now that I try to register images over reduced regions, I notice 
that there's no difference between results no matter which 
FixedImageRegion I set.

Invoking metric->DebugOn(), i realized that my FixedImageRegion settings 
were not taken into account (another call to SetFixedImageRegion was 
made) .
After having a look at the code, I saw that the reason of this problem 
is that I set the FixedImageRegion when an IterationEvent is generated 
by MultiResolutionImageRegistrationMethod::StartRegistration level-loop, 
but a further call to MultiResolutionImageRegistrationMethod::Initialize 
forces FixedImageRegion back to its maximum size 
(m_Metric->SetFixedImageRegion(m_FixedImagePyramid->GetOutput(m_CurrentLevel)->    
GetBufferedRegion() );).

This means user settings concerning FixedImageRegion will never be taken 
into account.
Furthermore, as it is necessary to adapt the FixedImageRegion to each 
level (shrinking it according to the shrink factors of the current 
level), I think the MultiResolutionPyramidImageFilter should somehow 
have the ability to generate an ImageRegion according to an input 
ImageRegion, the current level, and its shrink factors at this level. 
And then the RegistrationMethod could take this into account when 
setting the metric parameters.

Could you please tell me if I'm right and it's indeed an ITK bug, or if 
I just missed something along the way?? (maybe are we meant to manually 
set the BufferedRegion of each pyramid level)
(and if it's a bug, I'd of course be very grateful if anyone could fix 
it :-))

Thanks for reading me.
Luc.