Refactoring Level-Set framework - V4: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
No edit summary
Line 15: Line 15:
== Tcons ==
== Tcons ==


=== September ===
* 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 ++ ( -- ? )

Revision as of 14:00, 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 ++ ( -- ? )