[Insight-users] Fitting a 2D mesh model to a 2D image?

Luis Ibanez luis.ibanez@kitware.com
Tue May 4 16:14:18 EDT 2004


Hi Zach,


Here are several options:

(Option (C) is probably the easiest to use at this point)



A) You may want to use it the SpatialObjects and its
    registration support: SpatialObjectToImage registration.

    You will find the Hierarchy of spatial object under

            Insight/Code/SpatialObject

    There is a number of predefined SpatialObject in this directory.
    Given that you are targeting a very specific problem, you probably
    will have some advantages by creating your own variant of Spatial
    Object.

    An example about this type of registration is presented in the
    SoftwareGuide.

    This option is the most elegant but it will require some
    programming effort on your part.    :-)



B) You could use the FEM registration mechanism, but not through
    the FEM registration filter. The reason is that this filter
    takes control of most of the process. In your case you probably
    want to create your own mesh, and control the iterations of
    the registration.  Note that the FEM framework *do not* use the
    itkMesh. There is a native FEM mesh that you should use in order
    to create your object representation.

    This is a very formal option, but it will require a lot of
    programming effort on your part, plus some familiarization
    with the intricacies of FEM solvers.



C) You could create a "canonical" bacterial image and use the
    BSPline transform for doing deformable registration against
    your actual image.  This is probably the more straight forward
    option at this point.   You could "fabricate" the canonical
    bacterial image by straighten up the image from a real bacteria.
    This can be done with the example:

        Insight/Examples/Registration/LandmarkWarping2.cxx

    You will place source landmarks on the original bacterial image,
    and the target landmarks will be in a rectangular grid. Pretty
    much like the one you attached to your email.

    Once you get the canonical image, you simply use the Deformable
    registration mechanisms illustrated in

       Insight/Examples/Registration/DeformableRegistration4.cxx

    Which is the basic ITK registration framework with a BSpline
    DeformableTransform.  You use the Canonical bacterial as the
    fixed image, and the real image as the moving image.  Note that
    the BSplineTransform accepts a generic transform in order to
    make composition. You can therefore use a Rigid2D  transform
    in order to take care of global translation and rotation, while
    leaving only deformations for the BSpline transform itself.


    With this approach you will map all the bacterias into the
    reference system of the canonical bacteria and will probably
    be able to analyze the differences between specific patterns
    of gene expression.

    A great advantage here is that you will only have to deal
    with the region of pixels that cover your canonical bacteria.
    There will be good use of computation time in that case.



In General:

You may have to deal with the axial polarity  of the cells,
and with the fact that due to the microscopy projection, you
lose any 3D depth information as well as rotations of the
bacteria along its axis, parallel to the microscope plate.
But those issues affect any of the image processing methods
that you may envisage....



Please let us know if you have further questions.


    Thanks



      Luis


---------------------
Zachary Pincus wrote:

> Hello,
> 
> I've run across the need to place some sort of coordinate system on 
> images of bent bacteria for the purposes of making measurements of 
> protein localizations that can be compared across populations.
> 
> My first-pass idea was to make a 2D grid from an ITK mesh, and then use 
> some of the FEM model-based segmentation/registration methods to fit the 
> grid to the bacterial image. (See attached image for a vague idea of 
> what I'm talking about.)
> 
> However, from reading the documentation for the DeformableMesh3D filter, 
> I'm not sure if it will work off the shelf. It seems (and I am likely to 
> be wrong) that this filter is more designed to work with the output of 
> something like a marching cubes algorithm (or in my case, marching 
> squares) that defines only the edge of the structure (that is, some 
> manifold surface embedded in a higher-dimension space, like a 2D surface 
> of a 3D object, or in my case, a 1D perimeter of a 2D object). Do the 
> DeformableMesh3D methods work with dense meshes of the sort I'm 
> proposing in the image below?
> 
> It almost seems like I need some hybrid between the FEM deformable image 
> registration methods and the model based segmentation methods. If the 
> DeformableMesh3D methods won't work, are there other things that I could 
> try off-the-shelf from ITK? If not, does anyone have any suggestions as 
> to which classes I might try to build off of?
> 
> Thanks for any input at all,
> 
> Zach Pincus
> 
> Department of Biochemistry and Program in Biomedical Informatics
> Stanford University School of Medicine
> 
> 
> Attached: Figure 0, in which my imagined inputs and outputs are 
> illustrated in a most mediocre manner.
> 
> ------------------------------------------------------------------------
> 
> 






More information about the Insight-users mailing list