Difference between revisions of "Refactoring Level-Set framework - V4"

From KitwarePublic
Jump to navigationJump to search
Line 15: Line 15:
== Tcons ==
== Tcons ==


* 29 July. Attendees: Karthik Krishnan (Kitware), Lucas Antiga (Orobix), Kishore Mosaliganti (Harvard), Arnaud Gelas (Harvard)
* 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)
* 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 > value (bool encode if its characteristics has already been computed)
Std::pair< bool, xxx > grad
* 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 ++ ( -- ? )