Refactoring Level-Set framework - V4: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
Arnaudgelas (talk | contribs) No edit summary |
Arnaudgelas (talk | contribs) No edit summary |
||
Line 15: | Line 15: | ||
== Tcons == | == Tcons == | ||
* 29 July. Attendees: Karthik Krishnan (Kitware), Lucas Antiga (Orobix), Kishore Mosaliganti (Harvard), Arnaud Gelas (Harvard) | |||
* 1 September. Attendees: Olivier Bernard (Creatis), Joel Schaerer (Creatis), Kishore Mosaliganti (Harvard), Arnaud Gelas (Harvard) | |||
== Ideas == | == Ideas == | ||
Line 35: | Line 35: | ||
=== Term Sum Container === | === Term Sum Container === | ||
Inherit form Term Container | * Inherit form Term Container | ||
Implement Value as sum of all elements from the container | * Implement Value as sum of all elements from the container | ||
=== Term Product Container === | === Term Product Container === | ||
Inherit form Term Container | * Inherit form Term Container | ||
Implement Value as product of all elements from the container | * Implement Value as product of all elements from the container | ||
=== LevelSetFunctionBase === | === LevelSetFunctionBase === | ||
Virtual Value() = 0; | * Virtual Value() = 0; | ||
Virtual Grad() = 0; | * Virtual Grad() = 0; | ||
Virtual Hessian() = 0; | * Virtual Hessian() = 0; | ||
Virtual bool IsStreamable() = 0; | * Virtual bool IsStreamable() = 0; | ||
=== LocalStructure === | === LocalStructure === | ||
Location x | * Location x | ||
* std::pair< bool, xxx > value (bool encode if its characteristics has already been computed) | |||
* std::pair< bool, xxx > grad | |||
Etc… | * Etc… | ||
=== Reinitialization Filter === | === Reinitialization Filter === | ||
Input: one level set function | * Input: one level set function | ||
Output: one level set function | * Output: one level set function | ||
Virtual void GenerateData() = 0; // processing | * Virtual void GenerateData() = 0; // processing | ||
=== Stopping criterion === | === Stopping criterion === | ||
Functor? | * Functor? | ||
Phi^{n} | * Phi^{n} | ||
Phi^{n-1} | * Phi^{n-1} | ||
Number of iterations | * Number of iterations | ||
Check for additional values that can be passed (to avoid as much as possible explosion of computational cost!!!) | * Check for additional values that can be passed (to avoid as much as possible explosion of computational cost!!!) | ||
=== SamplingDomain === | === SamplingDomain === | ||
Represents the domain where the level set PDE is sampled, and thus used to solve the PDE equation. | * Represents the domain where the level set PDE is sampled, and thus used to solve the PDE equation. | ||
Iterator Begin(); | * Iterator Begin(); | ||
Iterator End(); | * Iterator End(); | ||
Iterator Iterator::operator ++ ( -- ? ) | * Iterator Iterator::operator ++ ( -- ? ) |
Revision as of 14:02, 1 September 2010
This page outlines the proposed changes to the current Level-Set framework. A number of these changes will break backwards compatibility.
Authors
The proposed changes for the Level-Set framework are being proposed by the Megason-Lab, Systems Biology Department, Harvard Medical School.
Questions and comments regarding these changes should be sent to
- Arnaud Gelas (arnaud_gelas -at- hms.harvard.edu)
- Sean Megason (sean_megason -at- hms.harvard.edu)
Other team members include:
- Kishore Mosaliganti (kishore_mosaliganti -at- hms.harvard.edu)
- Nicolas Rannou (nicolas_rannou -at- hms.harvard.edu)
Tcons
- 29 July. Attendees: Karthik Krishnan (Kitware), Lucas Antiga (Orobix), Kishore Mosaliganti (Harvard), Arnaud Gelas (Harvard)
- 1 September. Attendees: Olivier Bernard (Creatis), Joel Schaerer (Creatis), Kishore Mosaliganti (Harvard), Arnaud Gelas (Harvard)
Ideas
Term class
- One weight (scalar)
- One Level Set Function
- virtual GetCFLContribution() = 0;
- virtual Value() = 0;
- virtual bool IsStreamable() = 0
Term Container class
- std::map< id, Term > to be able to dynamically chaVirtual Value() = 0;
- bool IsStreamable(); // iterate on all term elements as long as there is streamable element.
Term Sum Container
- Inherit form Term Container
- Implement Value as sum of all elements from the container
Term Product Container
- Inherit form Term Container
- Implement Value as product of all elements from the container
LevelSetFunctionBase
- Virtual Value() = 0;
- Virtual Grad() = 0;
- Virtual Hessian() = 0;
- Virtual bool IsStreamable() = 0;
LocalStructure
- Location x
- std::pair< bool, xxx > value (bool encode if its characteristics has already been computed)
- std::pair< bool, xxx > grad
- Etc…
Reinitialization Filter
- Input: one level set function
- Output: one level set function
- Virtual void GenerateData() = 0; // processing
Stopping criterion
- Functor?
- Phi^{n}
- Phi^{n-1}
- Number of iterations
- Check for additional values that can be passed (to avoid as much as possible explosion of computational cost!!!)
SamplingDomain
- Represents the domain where the level set PDE is sampled, and thus used to solve the PDE equation.
- Iterator Begin();
- Iterator End();
- Iterator Iterator::operator ++ ( -- ? )