Difference between revisions of "NA"

From NAMIC Wiki
Jump to: navigation, search
m (Update from Wiki)
m (Update from Wiki)
Line 1: Line 1:
 
== Description ==
 
== Description ==
  
For a general description of how we are using spherical wavelets for shape analysis, see [[NA-MIC/Projects/Structural/Shape_Analysis/3D_Shape_Analysis_Using_Spherical_Wavelets|3D Shape Analysis Using Spherical Wavelets]]
+
A general description of this project is given on page: [[NA-MIC/Projects/fMRI_Analysis/Conformal_Flattening_for_fMRI_Visualization|Conformal Flattening for fMRI Visualization]].
  
This page outlines the steps we will take to code the Spherical Wavelet transform in ITK.
+
This page outlines the steps we will take to code the Conformal Flattening mapping in ITK.
  
* The best place to learn about the spherical wavelet transform that we will implement is in this paper, that also has pseudo-code.
+
For the detail of the algorithm please refer to the paper: S. Angenent, S. Haker, A. Tannenbaum, and R. Kikinis, “On the Laplace-Beltrami operator and brain surface flattening,” IEEE Trans. on Medical Imaging, Vol. 18, pp. 700-711, 1999.
  
: Spherical Wavelets: Texture Processing (1995) Peter Schröder, Wim Sweldens
+
An angle preserving flattening mapping is proposed in this paper. The explicit transform is obtained by solving a partial differential equation. Such transform will map the original surface to a plane(flattening) and then one can use classic stereographic transformation to map the plane to a sphere.
: http://citeseer.ist.psu.edu/oder95spherical.html
 
  
In this paper, it is shown how to do decompose a scalar signal defined on a spherical mesh into spherical wavelet coefficients (analysis step, also called forward transform), and vice-versa (synthesis step, also called inverse transform).
+
The process of the algorithm is brifly given below:
  
* In our implementation, we will generalize this code in 2 ways:
+
# The conformal mapping <span class="texhtml">''f''</span> is defined on the originla surface <span class="texhtml">Σ</span> as [[Image:89ff38a84b2fcde5fa7c5ea0f8c97a6b.png|\triangle f = (\frac{\partial}{\partial u} - i\frac{\partial}{\partial v})\delta_p]]. In that <span class="texhtml">''u''</span> and <span class="texhtml">''v''</span> are the conformal coordinates defined on the surface and the <span class="texhtml">δ<sub>''p''</sub></span> is a Dirac function whose value is non-zero only at point <span class="texhtml">''p''</span>. By solving this partial differential equation the mapping <span class="texhtml">''f''</span> can be obtained.
*# The signal can be decomposed on any surface mesh (not necessarily a sphere) that has a spherical parametrization. This input surface mesh will be called the ''ParametrizedMesh'' Internally in our code, this surface mesh will be retriangulated to have a particular triangulation structure needed for the spherical wavelet analysis (built from recursively subdividing an icosahedron). This retriangulated mesh will be called the ''TemplateMesh'' (that will be available to the user by a get method).
+
# To solve that equation on the discrete mesh representation of the surface, finite element method(FEM) is used. The problem is turned to solving a linear system <span class="texhtml">''D''''x'' = ''b''</span>. Since b is complex vector, the real and imaginary parts of the mapping <span class="texhtml">''f''</span> can be calculated separately by two linear system.
*# the signal can be N-dimensional (so for example, a 3D signal is a vector field defined on the spherical mesh).
+
# Having the mapping <span class="texhtml">''f''</span>, the original surface can be mapped to a plane.
 +
# Further, the plane can be mapped to a sphere by the stereographic projection.
  
* We will have 2 types of itk classes, inspired by the ITK Spherical Harmonics classes:
+
The code for doing this is currently local codes, not having been embeded into ITK class hierarchy. This is what we are working on now.
*# an itk object that is a container for the template mesh, the signal defined on the mesh and the spherical wavelet coefficients. This object will be called itkSphericalWaveletObject and its subclass will be the itkSurfaceWaveletObject:
 
*#* If the base mesh is a sphere, our object will be called a '''SphericalWaveletObject'''. There will be no need to input a ''ParametrizedMesh'' since it is built internally by the object by recursively subdividing an icosahedron. The subdivided icosahedron will be the ''TemplateMesh''.
 
*#* If the base mesh is an arbitrary surface, our object will be called a '''SurfaceWaveletObject''' and there will be a need to input a ''ParametrizedMesh'', as in the ITK Spherical Harmonics case, that represents the surface. The object will internally derive a ''TemplateMesh'' from the ''ParametrizedMesh''. (Note: we have not determined yet if this input will be two separate inputs, the surface mesh and its spherical parametrization, or a single input that consists of the surface mesh with the spherical parametrization somehow saved inside the mesh object. This will be determined and made consistent for both the ITK Spherical Harmonics and Spherical Wavelets).
 
*# 2 filters that take the itkSphericalWaveletObject as input and process it to calculate either the coefficients from the signal ('''itkSphericalWaveletsSignalToCoefficients''') or the signal from the coefficients ('''itkSphericalWaveletsCoefficientsToSignal'''). The output of both filters is an itkSphericalWaveletObject.
 
 
 
For a preliminary API, see [[NA-MIC/Projects/Structural/Shape_Analysis/ITK_Spherical_Wavelets_API|ITK Spherical Wavelets API]]
 
  
 
== Current Status ==
 
== Current Status ==
  
* We have created the API with Martin Styner (UNC), using as a motivation the ITK Spherical Harmonics ITK classes
+
* We have written and tested the itkConformalFlatteningFilter
* We have started to code the template mesh creation using an icosahedron subdivision with a specific ordering of the vertices of the mesh and a record of the hierarchical structure between vertices needed for the transform. We are using as a starting point the code in Code/Algorithms/RegularSphereMeshSource
+
* Our paper on this was accepted for oral presentation at the 2006 MICCAI Open-source Workshop
  
 
== Next Steps ==
 
== Next Steps ==
  
* We will code the Base class itkSphericalWaveletsObject (that will include the template mesh creation code we have been working on)
+
* We will help integrate this into the ITK CVS repository
* We will code the filters
 
* Finally we will code the Base class itkSurfaceWaveletsObject that has more complex template creation
 
  
 
== Members ==
 
== Members ==
  
* Xavier LeFaucheur (Gatech)
 
 
* Yi Gao (Gatech)
 
* Yi Gao (Gatech)
* Delphine Nain (Gatech)
 
 
* John Melonakos (Gatech)
 
* John Melonakos (Gatech)
 
* Jim Miller (GE)
 
* Jim Miller (GE)
 
* Luis Ibanez (Kitware)
 
* Luis Ibanez (Kitware)
* Martin Styner (UNC)
 
  
 
== Links ==
 
== Links ==
  
* [[NA-MIC/Projects/Structural/Shape_Analysis/3D_Shape_Analysis_Using_Spherical_Wavelets|3D Shape Analysis Using Spherical Wavelets]]
+
* [[NA-MIC/Projects/fMRI_Analysis/Conformal_Flattening_for_fMRI_Visualization|Conformal Flattening for fMRI Visualization]]
* [[NA-MIC/Projects/Structural/Shape_Analysis/ITK_Spherical_Wavelets_API|ITK Spherical Wavelets API]]
 

Revision as of 14:03, 18 December 2006

Home < NA

Description

A general description of this project is given on page: Conformal Flattening for fMRI Visualization.

This page outlines the steps we will take to code the Conformal Flattening mapping in ITK.

For the detail of the algorithm please refer to the paper: S. Angenent, S. Haker, A. Tannenbaum, and R. Kikinis, “On the Laplace-Beltrami operator and brain surface flattening,” IEEE Trans. on Medical Imaging, Vol. 18, pp. 700-711, 1999.

An angle preserving flattening mapping is proposed in this paper. The explicit transform is obtained by solving a partial differential equation. Such transform will map the original surface to a plane(flattening) and then one can use classic stereographic transformation to map the plane to a sphere.

The process of the algorithm is brifly given below:

  1. The conformal mapping f is defined on the originla surface Σ as \triangle f = (\frac{\partial}{\partial u} - i\frac{\partial}{\partial v})\delta_p. In that u and v are the conformal coordinates defined on the surface and the δp is a Dirac function whose value is non-zero only at point p. By solving this partial differential equation the mapping f can be obtained.
  2. To solve that equation on the discrete mesh representation of the surface, finite element method(FEM) is used. The problem is turned to solving a linear system D'x = b. Since b is complex vector, the real and imaginary parts of the mapping f can be calculated separately by two linear system.
  3. Having the mapping f, the original surface can be mapped to a plane.
  4. Further, the plane can be mapped to a sphere by the stereographic projection.

The code for doing this is currently local codes, not having been embeded into ITK class hierarchy. This is what we are working on now.

Current Status

  • We have written and tested the itkConformalFlatteningFilter
  • Our paper on this was accepted for oral presentation at the 2006 MICCAI Open-source Workshop

Next Steps

  • We will help integrate this into the ITK CVS repository

Members

  • Yi Gao (Gatech)
  • John Melonakos (Gatech)
  • Jim Miller (GE)
  • Luis Ibanez (Kitware)

Links