#include <Organism.h>
Inheritance diagram for mial::Organism< DataType, nDims >:
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 |
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.
DataType | The data type to use (eg. float) | |
nDims | The dimensionality of the organism |
Definition at line 58 of file Organism.h.
virtual bool mial::Organism< DataType, nDims >::addBehaviour | ( | Behavior< DataType, nDims > * | b, | |
bool | replacePhys = true | |||
) | [inline, virtual] |
Public method for adding behaviors.
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().
virtual bool mial::Organism< DataType, nDims >::addDeformation | ( | Deformation< DataType, nDims > * | d | ) | [inline, virtual] |
Public method for adding deformations.
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().
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 >.
virtual bool mial::Organism< DataType, nDims >::setCognitiveLayer | ( | ControlCenter< DataType, nDims > * | c | ) | [inline, virtual] |
Public method for setting the cogntive layer.
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().
virtual bool mial::Organism< DataType, nDims >::setGeometricLayer | ( | Geometric< DataType, nDims > * | g | ) | [inline, virtual] |
Public method for setting the geometric layer.
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().
virtual bool mial::Organism< DataType, nDims >::setPhysicsLayer | ( | Physics< DataType, nDims > * | p | ) | [inline, virtual] |
Public method for setting the physics layer.
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().