[Insight-users] Silly questions about registration
David Holmes
holmesd3@yahoo.com
Mon, 24 Feb 2003 11:47:58 -0800 (PST)
I am unfortunately still having some trouble with the
registration methods. In particular, I am still
working with the ImageRegistration1.cxx example. When
I run the code as is, it gives the correct output and
I am happy. However, when looking and the code and
data, I realized that the data is 8-bit data but in
the code we are working with floats. In the interest
of memory management and speed, I decided to change
the typedef from:
typedef float PixelType
to:
typedef unsigned char PixelType
Because I left everthing else the same, I assumed that
the algorithm would work simply with the unsigned char
data. When I ran it, I got:
Result =
Translation X = -191.882
Translation Y = -190.493
Iterations = 70
Metric value = 13.5914
I haven't dug into the ITK code nor have I added an
Observer to the optimizer yet. I will do that as a
next step, but I figured that someone might have a
better idea about why this occurse before I dig more
myself.
Thanks
david
--- Luis Ibanez <luis.ibanez@kitware.com> wrote:
>
>
> Hi David,
>
>
> 1) The ImageRegistration1.cxx example was tunned
> for the image used in the SoftwareGuide. This
> image is found in Insight/Examples/Data.
>
> The behavior that you observe in your run is
> typical of a too large step length. In this
> example, the step lenght was hard wired as 4.0.
>
> You may want to start by reducing the steplength
> to a much smaller value until the optimizer
> advances
> in the desired direction. Then you can play
> increasing
> the step size again until gaining a reasonable
> speed
> for registration.
>
> 2) The transform resulting from the registration
> process is exactly the one that you need to
> provide
> to the itk::ResampleImageFilter in order to map
> data from the moving image space to the fixed
> image space.
>
> Note that the reason why the transform is
> actually
> the one that maps points from the fixed image
> to the moving image is that this is the only way
> in which the final image can be computed whitout
> 'missing' pixels. The Resample image filter
> visits
> all the pixels in the output image grid, and use
> the transform to map its positions to the moving
> image space.
>
> This is explained in more detail in the software
> guide on Section 5.7.1, pages 136-152 where the
> ResampleImageFilter is described. It is quite
> important to read this section before moving
> into
> the Image registration section.
>
>
> Please let us know if you have further questions.
>
>
> Thanks
>
>
> Luis
>
>
> -----
>
>
> David Holmes wrote:
> > I'm going over the registration framework for ITK
> and
> > running some tests so that I better understand the
> > model. I have several silly questions.
> >
> > (1) Pulling the code from Registration1
> > example, I took two images that were the same,
> applied
> > translations, and ran the registration. Here is
> how
> > it
> > progressed:
> >
> > 0 = 2690.87 : [2.05794, -3.43]
> > 1 = 3538.93 : [2.79055, -7.36234]
> > 2 = 3945.74 : [1.41266, -11.1175]
> > 3 = 4030.27 : [1.45081, -15.1173]
> > 4 = 4296.43 : [0.881159, -19.0766]
> > 5 = 4622.25 : [-1.29036, -22.4358]
> > 6 = 4726.89 : [-3.55759, -25.7312]
> > 7 = 5030.82 : [-5.44799, -29.2563]
> > 8 = 5368.15 : [-8.17364, -32.1839]
> > 9 = 5666.88 : [-10.8422, -35.1636]
> > .
> > .
> > .
> >
> > As you can see, it looks like it is
> maximizing,
> > even though I am using the Means Squared metric.
> So I
> > explicitly set the MaximizeOff flag-Same response.
>
> > So,
> > for kicks, I tried MaximizeOn(). Here?s what
> I
> > got:
> >
> >
> >
> > 0 = 2690.87 : [-2.05794, 3.43]
> > 1 = 898.249 : [-4.63303, 6.49087]
> > 2 = 1243.98 : [-3.05864, 5.25746]
> > 3 = 27.0703 : [-2.62099, 3.30593]
> > 4 = 720.144 : [-2.93342, 4.25587]
> > 5 = 200.952 : [-3.01993, 5.25212]
> > 6 = 24.1303 : [-2.99806, 4.7526]
> > 7 = 22.6493 : [-2.99862, 5.0026]
> > 8 = 0.309667 : [-3.11456, 4.95589]
> >
> > Is something perhaps backwards there, or I am
> all
> > messed up?
> >
> >
> >
> > (2) Using the example out of the software
> > guide again, this question is about what is
> returned.
> > Generally speak, with Analyze, when we provide a
> > solution to a registration, we provide the
> > solution that will be applied to the "moving"
> image to
> > put it into the space of the fixed image. In my
> own
> > code using ITK, when I apply a translation of
> [-3,5]
> > to an image and then register it, the solution is
> > [-3,5]. If I were to apply that to the "moving"
> > image, the result would be a translation of
> [-6,10],
> > so at least the way that I am used to doing it, I
> > would have to take the negative of the solution to
> put
> > the moving into the fixed space. I checked the
> > software guide and found that this is consistent
> with
> > the examples. Once again, am I all screwed up
> with
> > this??
> >
> > Thanks for the help
> >
> >
> >
> > david
> >
> >
> >
> >
> >
> > __________________________________________________
> > Do you Yahoo!?
> > Yahoo! Shopping - Send Flowers for Valentine's Day
> > http://shopping.yahoo.com
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users@public.kitware.com
> >
>
http://public.kitware.com/mailman/listinfo/insight-users
> >
>
>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users@public.kitware.com
>
http://public.kitware.com/mailman/listinfo/insight-users
__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - forms, calculators, tips, more
http://taxes.yahoo.com/