Difference between revisions of "NA"

From NAMIC Wiki
Jump to: navigation, search
m (Update from Wiki)
m (Update from Wiki)
Line 1: Line 1:
'''Objective:''' Create interactive interface for labeling of white matter fiber clusters during the atlas creation process.
+
== Description ==
  
'''Progress:''' A new module has been added to slicer2, ModelInteraction. It imports and exports the ModelGroups which are an existing part of MRML. Previously these were only created in the ModelHierarchy module. With the new module, model groups can be created and named, and populated with models interactively using the mouse and keyboard to select in 3D. The groups are then exported to the MRML tree and can be saved in the MRML scene.
+
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]]
  
<br />'''Application:''' This module is in use at the PNL and the Golby Lab for interactive selection, organization, and naming of white matter fiber clusters.
+
This page outlines the steps we will take to code the Spherical Wavelet transform 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.
 +
 
 +
: Spherical Wavelets: Texture Processing (1995) Peter Schröder, Wim Sweldens
 +
: 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).
 +
 
 +
* In our implementation, we will generalize this code in 2 ways:
 +
*# 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).
 +
*# the signal can be N-dimensional (so for example, a 3D signal is a vector field defined on the spherical mesh).
 +
 
 +
* We will have 2 types of itk classes, inspired by the ITK Spherical Harmonics classes:
 +
*# 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 ==
 +
 
 +
* We have created the API with Martin Styner (UNC), using as a motivation the ITK Spherical Harmonics ITK classes
 +
* 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
 +
 
 +
== Next Steps ==
 +
 
 +
* We will code the Base class itkSphericalWaveletsObject (that will include the template mesh creation code we have been working on)
 +
* We will code the filters
 +
* Finally we will code the Base class itkSurfaceWaveletsObject that has more complex template creation
 +
 
 +
== Members ==
 +
 
 +
* Xavier LeFaucheur (Gatech)
 +
* Yi Gao (Gatech)
 +
* Delphine Nain (Gatech)
 +
* John Melonakos (Gatech)
 +
* Jim Miller (GE)
 +
* Luis Ibanez (Kitware)
 +
* Martin Styner (UNC)
 +
 
 +
== Links ==
 +
 
 +
* [[NA-MIC/Projects/Structural/Shape_Analysis/3D_Shape_Analysis_Using_Spherical_Wavelets|3D Shape Analysis Using Spherical Wavelets]]
 +
* [[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

For a general description of how we are using spherical wavelets for shape analysis, see 3D Shape Analysis Using Spherical Wavelets

This page outlines the steps we will take to code the Spherical Wavelet transform 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.
Spherical Wavelets: Texture Processing (1995) Peter Schröder, Wim Sweldens
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).

  • In our implementation, we will generalize this code in 2 ways:
    1. 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).
    2. the signal can be N-dimensional (so for example, a 3D signal is a vector field defined on the spherical mesh).
  • We will have 2 types of itk classes, inspired by the ITK Spherical Harmonics classes:
    1. 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. 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 ITK Spherical Wavelets API

Current Status

  • We have created the API with Martin Styner (UNC), using as a motivation the ITK Spherical Harmonics ITK classes
  • 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

Next Steps

  • We will code the Base class itkSphericalWaveletsObject (that will include the template mesh creation code we have been working on)
  • We will code the filters
  • Finally we will code the Base class itkSurfaceWaveletsObject that has more complex template creation

Members

  • Xavier LeFaucheur (Gatech)
  • Yi Gao (Gatech)
  • Delphine Nain (Gatech)
  • John Melonakos (Gatech)
  • Jim Miller (GE)
  • Luis Ibanez (Kitware)
  • Martin Styner (UNC)

Links