[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