[Insight-users] EM with volumetric images in ITK
Luis Ibanez
luis.ibanez at kitware.com
Tue Apr 24 17:15:04 EDT 2007
Hi Audette,
The code for Expectation Maximization using a Gaussian Mixture
Model should be indepented of the image dimension.
You may want to look at the Examples in the ITK Users Guide
http://www.itk.org/ItkSoftwareGuide.pdf
In particular to Section 10.4.4.
" Expectation Maximization Mixture Model Estimation"
in pdf-pages 720-723.
In this example, a ListSample is used as input to the
classification framework.
In your case, you can replace the ListSample with the
combination of the two following classes:
1) ImageToVectorImageFilter:
http://www.itk.org/Insight/Doxygen/html/classitk_1_1ImageToVectorImageFilter.html
for combining your N scalar images
into a single VectorImage of N components
2) ImageToListAdaptor:
http://www.itk.org/Insight/Doxygen/html/classitk_1_1Statistics_1_1ImageToListAdaptor.html
for presenting your image of
N components as a ListSample.
With these two classes, the dimension of the image is
irrelevant.
BTW, You may also be interested in using the EM Module of Slicer.
You can download Slicer3 from :
http://www.slicer.org/
A description of the Expectation Maximization module
can be found at:
http://www.na-mic.org/Wiki/index.php/Slicer3:EM
A screenshot is available at:
http://www.na-mic.org/Wiki/images/b/b4/EMSegmentSlicer3_Segmentation.png
An example can be run using the Tutorial instructions in
http://wiki.na-mic.org/Wiki/index.php/Slicer3:EM#EMSegment_Tutorial
Note that the this EM module is more sophisticated in the
sense that it simultaneously perform: MRI bias correction,
segmentation, and registration of the datasets. This is
usually a nice combination, but, depending on the setup
of your problem, it may be more than what you need.
Please let us know if you have further questions,
Thanks
Luis
---------------------
Audette, Michel wrote:
> Hi all,
>
> I am looking for a method, or an example, for running Expectation Maximization with Gaussian Mixtures on a 3D image volume. The one example, on a 2D image, that I find seems to define a histogram from the image, then use the histogram elements to comprise a sample over which runs the EM method, but I dont think that this is correct...
>
> for ( unsigned int i = 0 ; i < histogramSize ; ++i )
> {
> sample->PushBack( histogram->GetFrequency( bin, 0 ) );//0 is for first channel
> }
>
> I want to initialize the EM method with assistance from the histogram, but run EM with the actual data.
>
> If I use a sampling method looped over the 3 indices of the volume, the method seems to take a long time to run. Is there a way of using the input volume while limiting the complexity?
>
> Can anyone offer an example or suggestions?
>
> Best regards,
>
>
> Michel Audette, Ph.D.
> Innovation Center Computer Assisted Surgery (ICCAS)
> Philipp-Rosenthal-Strasse 55
> Leipzig, Germany
> Phone: ++49 (0) 341 / 97 - 1 20 13
> Fax: ++49 (0) 341 / 97 - 1 20 09
>
>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
More information about the Insight-users
mailing list