mial::Organism< DataType, nDims > Class Template Reference

The abstract base container class that houses and connects all layers of the deformable organism. More...

#include <Organism.h>

Inheritance diagram for mial::Organism< DataType, nDims >:

itk::ItkOrganism< TInputImage, TOutputImage, TExternalForceImage, DataType, nDims > itk::ItkVesselCrawler< TInputImage, TOutputImage, TExternalForceImage, DataType > itk::Org_EulerSchedule< TInputImage, TOutputImage, TExternalForceImage, DataType, nDims > itk::Org_LevelSetSchedule< TInputImage, TOutputImage, TExternalForceImage, DataType, nDims > List of all members.

Public Types

typedef Geometric< DataType,
nDims > 
GeometricType
 The type used for the geometric layer.

Public Member Functions

virtual bool addBehaviour (Behavior< DataType, nDims > *b, bool replacePhys=true)
 Public method for adding behaviors.
virtual bool addDeformation (Deformation< DataType, nDims > *d)
 Public method for adding deformations.
virtual bool setCognitiveLayer (ControlCenter< DataType, nDims > *c)
 Public method for setting the cogntive layer.
virtual bool setPhysicsLayer (Physics< DataType, nDims > *p)
 Public method for setting the physics layer.
virtual bool setGeometricLayer (Geometric< DataType, nDims > *g)
 Public method for setting the geometric layer.
virtual int run ()=0
 Public method for simulating the organism.
virtual void setRunTime (DataType r)

Protected Attributes

Physics< DataType, nDims
>::Pointer 
physLayer
 The Physics layer used to simulate the deformation dynamics.
Geometric< DataType, nDims
>::Pointer 
geomLayer
 The Geometric layer that houses the shape of the organism.
ControlCenter< DataType, nDims
>::Pointer 
cgLayer
 The ControlCenter (or cognitive layer) that is responsible for deciding what action to take, and performing that action.
DataType runTime

Detailed Description

template<class DataType, int nDims>
class mial::Organism< DataType, nDims >

The abstract base container class that houses and connects all layers of the deformable organism.

In medical image analysis strategies based on deformable models, controlling the deformations of the models is a desirable goal to produce proper segmentations. Incorporating expert knowledge to automatically guide deformations cannot be easily and elegantly achieved using the classical deformable model low-level energy-based fitting mechanisms. Deformable Organisms (DOs), are a decision-making framework for medical image analysis that complements bottom-up, data-driven deformable models with top-down, knowledge-driven mode-fitting strategies in a layered fashion inspired by artificial life modeling concepts. Intuitive and controlled deformations are carried out through behaviors. Sensory input from image data and contextual knowledge about the analysis problem govern these different behaviors.

Deformable Organisms are built following a multilevel AL modelling approach consisting of four primary layers: cognitive, behavioral, physical, and geometrical. Specifically, the cognitive layer makes decisions based on the DOs current state, anatomical knowledge, and its surrounding environment (the image). Decisions could be made to sense information, to deform based on sensory data, to illicit help from the user, or to terminate the segmentation process. All of these actions are described under the behavioral layer of the organism, and they rely upon both the physical and geometrical layers for implementation. For example, in the context of our `vessel crawlers', the act of moving towards a sensed target location is described by the `growing' behavioral method. The cognitive center gathers sensory input using the `sense-to-grow' sensory module, decides the correct location via the `where-to-grow' decision module, elicits the act of `growing', and then conforms to the vascular walls by `fitting'. In turn, each of these methods relies upon the physical and geometrical layers to carry out tasks, such as maintaining model stability. Consequently, we have a framework with many independent layers of abstraction, each built upon the implementation of independent modules and or processes.

Parameters:
DataType The data type to use (eg. float)
nDims The dimensionality of the organism

Definition at line 58 of file Organism.h.


Member Function Documentation

template<class DataType, int nDims>
virtual bool mial::Organism< DataType, nDims >::addBehaviour ( Behavior< DataType, nDims > *  b,
bool  replacePhys = true 
) [inline, virtual]

Public method for adding behaviors.

Parameters:
Behavior<DataType,nDims> * b the behavior to add
bool replacePhys = true A boolean indicating whether or not to replace the physics layer of the passed in behavior with that of the organism. If set to false, the organism may run behaviors that actually simulate a different organism.

Definition at line 85 of file Organism.h.

Referenced by itk::Org_EulerSchedule< TInputImage, TOutputImage, TExternalForceImage, DataType, nDims >::Org_EulerSchedule().

template<class DataType, int nDims>
virtual bool mial::Organism< DataType, nDims >::addDeformation ( Deformation< DataType, nDims > *  d  )  [inline, virtual]

Public method for adding deformations.

Parameters:
Deformation<DataType,nDims> * d the deformation to add

Definition at line 91 of file Organism.h.

Referenced by itk::Org_EulerSchedule< TInputImage, TOutputImage, TExternalForceImage, DataType, nDims >::Org_EulerSchedule().

template<class DataType, int nDims>
virtual int mial::Organism< DataType, nDims >::run (  )  [pure virtual]

Public method for simulating the organism.

Implemenations of this method are in charge of running the cogntive and physics layers.

Implemented in itk::ItkOrganism< TInputImage, TOutputImage, TExternalForceImage, DataType, nDims >.

template<class DataType, int nDims>
virtual bool mial::Organism< DataType, nDims >::setCognitiveLayer ( ControlCenter< DataType, nDims > *  c  )  [inline, virtual]

Public method for setting the cogntive layer.

Parameters:
ControlCenter<DataType,nDims> * c the control center to set.

Definition at line 97 of file Organism.h.

Referenced by itk::Org_EulerSchedule< TInputImage, TOutputImage, TExternalForceImage, DataType, nDims >::Org_EulerSchedule().

template<class DataType, int nDims>
virtual bool mial::Organism< DataType, nDims >::setGeometricLayer ( Geometric< DataType, nDims > *  g  )  [inline, virtual]

Public method for setting the geometric layer.

Parameters:
Geometric<DataType,nDims> * c the geometric layer to set.

Definition at line 110 of file Organism.h.

Referenced by itk::Org_EulerSchedule< TInputImage, TOutputImage, TExternalForceImage, DataType, nDims >::Org_EulerSchedule().

template<class DataType, int nDims>
virtual bool mial::Organism< DataType, nDims >::setPhysicsLayer ( Physics< DataType, nDims > *  p  )  [inline, virtual]

Public method for setting the physics layer.

Parameters:
Physics<DataType,nDims> * p the physics layer to set.

Definition at line 104 of file Organism.h.

Referenced by itk::Org_EulerSchedule< TInputImage, TOutputImage, TExternalForceImage, DataType, nDims >::Org_EulerSchedule().


The documentation for this class was generated from the following file:
Generated on Wed Jul 19 13:05:23 2006 for IDO by  doxygen 1.4.7