[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/