[Insight-users] Re: ITK Image Reading and Cast filter
Luis Ibanez
luis.ibanez@kitware.com
Fri May 21 23:03:56 EDT 2004
Hi Shekhar,
a) Yeap, the AffineTransform, and in general, the transform
that include rotations and scaling, are very sensitive to
the initial parameters.
I'll strongly suggest you to use the CenteredAffineTransform
and initialize it with the CenteredTransformInitializer.
You will find details on this in the examples in
Insight/Examples/Registration/
ImageRegistration6.cxx
ImageRegistration7.cxx
ImageRegistration8.cxx
ImageRegistration9.cxx
Note that most of the VNL wrapped optimizers (including
Amoeba and LFBGS) expect the parametric space to be in
the range [-1:1]. You may have to get familiar first
with the fine tunning of this optimizer before you use
them for image registration. Please look at the Testing
of the optimizers where they are run in simple cost function
cases. If you experiment with the optimizer parameter setting
on those simple cases, that will show you how to control the
behavior of the optimizer in the more complex situation of
image registration.
Testing for the optimizers will be found in the directory
Insight/Testing/Code/Numerics
b) You only need to use casting when you use the Viola-Wells
implementation of Mutual Information Metric. With this
metric, the input images are provided as image with pixel
type float, and are normalized to have zero mean an
variance 1. (NormalizeImageFilter) is use for this purpose.
With any other Metric you can skip the casting.
c) In the multi-resolution registration method:
Setting the number of pyramid levels to 1 *AND*
setting the scaling parameters to 1 will be *almost*
equivalent to running a basic itkImageRegistrationMethod.
The "almost" is because even when there is a single pyramid
level and all scales are 1.0, the MultiResolutionPyramid
will smooth the images before resampling them.
So, it will actually be equivalent to a itkImageRegistraion
method on the smoothed images.
Regards,
Luis
----------------------------------------
Dwivedi, Shekhar (Research, Non-ge) wrote:
> Hi Luis,
>
> thanks for your detailed explanation and the link to the lectures.
> Actually in second point I missed to write the "levels of pyramid" instead I wrote "pyramid" , but now it is clear.
>
> a)
>
> On working with few optimizers I think that Affine transform is too sensitive to the initial parameters.It is not working with the optimizers(tried with amoeba and LBFGS) and giving the error that too many samples mapped outside the moving image buffer. With few other transform s i am getting satisfactory results, but affine is creating a problem.What do you suggest.Even the scaling does not help much.
>
> b)
>
> Why do we use Cast Filter , Why Image registration routine specifically requires the image as float(if we are not doing the downsampling).
>
> Please clear that Is the role of Cast Filter only limited to the conversion of the format of the Image.
>
> c)
>
> If we Set the number of levels as 1 without initializing the pyramid filter in the MultiResolution Image registration , then does it means that it is same as simple Image registration. (I just want to know that whether there is any other specific functionality which Multi resolution performs as a default or only just downsampling of the pyramid.)
>
> Thank You.
>
> Yours,
> Shekhar.
>
More information about the Insight-users
mailing list