[Insight-users] model to image registration example

Luis Ibanez luis.ibanez at kitware.com
Sat Mar 6 17:01:41 EST 2010


Hi bulkmailaddress,


Your description of the metric is correct.

You are right in that the set of points do not
really needed to be restricted to the initial
overlap with the image.

There is an assumption of a "good initialization"
here, so that the initial overlap between the
MovingSpatialObject and the Fixed image is
large enough.

What the Metric is doing, is essentially, rasterizing
the Spatial Object by using the grid of the Fixed
image, and then using the resulting points to
drive the registration.

It will be reasonable to regenerate the points
every so often during the registration process.

This is indeed a very simple example, and
probably not what you should use for a real
application. You should write your own metric,
to suit a real application.


In practice,
what you should address is:

A) Generate a collection of points
    from the SpatialObject

B) Use that collection of points
     for driving the registration.

Note that once you have done (A), you could
indeed perform PointSetToImageRegistration.

Note also that the SpatialObjectToImage
registration uses a reverse convention of
the direction of the Transform.  That is, in
the SpatialObjectToImage registration, the
Transform is the one that maps from the
Moving Spatial Object to the space of the
Fixed Image.


    Regards,


          Luis



--------------------------------------------------------------
On Fri, Mar 5, 2010 at 12:00 PM, Karl <bulkmailaddress at gmail.com> wrote:
> Hi,
>
>
>
> I have a question on the model to image registration example
> ModelToImageRegistration1.cxx.  I am using ITK 3.8.0.
>
>
>
> The example defines its own metric.  One that is designed to maximize the
> sum of the pixels in the image that the model overlaps with.
>
>
>
> This metric overrides the SetMovingSpatialObject function.  This function
> appears to be doing the following:
>
> 1)      Take every pixel location in the image.
>
> 2)      Add it to a list if it lies within the object.
>
>
>
> The GetValue function then only uses those points to optimize the metric.
> In the GetValue function the transform is applied to these points and uses
> where the points currently get mapped to calculate the metric value.
>
>
>
> Does this make sense?  Only the points where the object and image initially
> overlap are used in the registration process.  Isn’t the object of the
> registration to increase this overlap.  If the model and image have no
> overlap, but an appropriate initial transform parameter set is provided,
> then no points will get selected in the SetMovingSpatialObject function, and
> registration will not occur.
>
>
>
> Am I missing something?
>
>
>
> Thanks
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>


More information about the Insight-users mailing list