#include <itkDeformableSimplexMesh3DFilter.h>
Inheritance diagram for itk::DeformableSimplexMesh3DFilter< TInputMesh, TOutputMesh >:
Public Types | |
typedef DeformableSimplexMesh3DFilter | Self |
typedef MeshToMeshFilter< TInputMesh, TOutputMesh > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef TInputMesh | InputMeshType |
typedef TOutputMesh | OutputMeshType |
typedef InputMeshType::PointsContainerPointer | InputPointsContainerPointer |
typedef InputMeshType::PointsContainer | InputPointsContainer |
typedef InputMeshType::PointsContainer::Iterator | InputPointsContainerIterator |
typedef InputMeshType::PointType | PointType |
typedef PointType::VectorType | VectorType |
typedef CovariantVector< typename VectorType::ValueType, 3 > | CovariantVectorType |
typedef InputMeshType::PixelType | PixelType |
typedef CovariantVector< PixelType, 3 > | GradientType |
typedef Image< GradientType, 3 > | GradientImageType |
typedef Image< unsigned char, 3 > | BinaryOutput |
typedef Image< float, 3 > | MagnitudeOutput |
typedef GradientImageType::Pointer | GradientImagePointer |
typedef GradientImageType::IndexType | GradientIndexType |
typedef GradientImageType::PixelType | GradientPixelType |
typedef GradientIndexType::IndexValueType | GradientIndexValueType |
typedef GradientImageType::SizeType | GradientImageSizeType |
typedef std::vector< GradientIndexType > | ArrayGradientIndexType |
typedef InputMeshType::Pointer | InputMeshPointer |
typedef OutputMeshType::Pointer | OutputMeshPointer |
typedef InputMeshType::PointType | MeshPointType |
typedef InputMeshType::CellsContainerPointer | CellsContainerPointer |
typedef InputMeshType::CellsContainer::Iterator | CellsContainerIterator |
typedef InputMeshType::NeighborListType | InputNeighbors |
typedef InputMeshType::NeighborListType::iterator | InputNeighborsIterator |
typedef itk::MapContainer< unsigned long, std::set< unsigned long > > | VertexNeighborListType |
typedef std::set< unsigned long > | NeighborSetType |
typedef std::set< unsigned long > | IndexSetType |
typedef NeighborSetType::iterator | NeighborSetIterator |
typedef IndexSetType::iterator | IndexSetIterator |
typedef InputMeshType::GeometryMapType | GeometryMapType |
typedef GeometryMapType::Pointer | GeometryMapPointer |
typedef GeometryMapType::Iterator | GeometryMapIterator |
Public Member Functions | |
virtual const char * | GetClassName () const |
virtual void | SetGradient (GradientImagePointer _arg) |
virtual GradientImagePointer | GetGradient () |
virtual void | SetAlpha (double _arg) |
virtual double | GetAlpha () |
virtual void | SetBeta (double _arg) |
virtual double | GetBeta () |
virtual void | SetGamma (double _arg) |
virtual double | GetGamma () |
virtual void | SetDamping (double _arg) |
virtual double | GetDamping () |
virtual void | SetRigidity (unsigned int _arg) |
virtual unsigned int | GetRigidity () |
virtual void | SetLocality (double _arg) |
virtual double | GetLocality () |
virtual void | SetMaxMagnitude (float _arg) |
virtual void | SetRange (int _arg) |
virtual int | GetRange () |
virtual void | SetData (GeometryMapType *_arg) |
virtual GeometryMapType * | GetData () |
virtual int | GetStep () |
virtual void | SetIterations (int _arg) |
virtual int | GetIterations () |
virtual int | GetImageWidth () |
virtual int | GetImageHeight () |
virtual int | GetImageDepth () |
Static Public Member Functions | |
Pointer | New () |
Protected Member Functions | |
DeformableSimplexMesh3DFilter () | |
~DeformableSimplexMesh3DFilter () | |
DeformableSimplexMesh3DFilter (const Self &) | |
void | operator= (const Self &) |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | GenerateData () |
virtual void | Initialize () |
virtual void | ComputeGeometry () |
virtual void | ComputeDisplacement () |
virtual void | ComputeInternalForce (SimplexMeshGeometry *data) |
virtual void | ComputeExternalForce (SimplexMeshGeometry *data) |
virtual void | ComputeOutput () |
virtual void | UpdateReferenceMetrics () |
double | L_Func (double r, double d, double phi) |
GradientIndexType | BresenhamLine (GradientIndexType a, GradientIndexType b) |
PointType | ComputeBarycentricCoordinates (PointType p, SimplexMeshGeometry *data) |
Protected Attributes | |
double | m_Alpha |
double | m_Beta |
double | m_Gamma |
double | m_Damping |
unsigned int | m_Rigidity |
double | m_Locality |
int | m_Range |
int | m_Step |
int | m_ImageWidth |
int | m_ImageHeight |
int | m_ImageDepth |
int | m_Iterations |
float | m_MaxMagnitude |
GeometryMapPointer | m_Data |
GradientImagePointer | m_Gradient |
DeformableSimplexMesh3DFilter is a discrete three-dimensional deformable model, which can be used to deform a 3-D SimplexMesh.
The mesh deformation is constrained by internal forces. The interal force can be scaled via SetAlpha (typical values are 0.01 < alpha < 0.3). The external force is derived from the image one wants to delineate. Therefore an image of type GradientImageType needs to be set by calling SetGradientImage(...). The external forces are scaled via SetBeta (typical values are 0.01 < beta < 1). One still needs to play around with these values.
To control the smoothness of the mesh a rigidity parameter can be adjusted. Low values (1 or 0) allow areas with high curvature. Higher values (around 7 or 8) will make the mesh smoother.
By setting the gamma parameter the regularity of the mesh is controlled. Low values (< 0.03) produce more regular mesh. Higher values ( 0.3 < gamma < 0.2) will allow to move the vertices to regions of higher curvature.
This approach for segmentation follows that of Delingette et al. (1997).
This filter currently assumes that the spacing of the input image is 1.
The user has to set the number of iterations for mesh evolution.
Leila Baghdadi, MICe, Hospital for Sick Childern, Toronto, Canada, Modified in October 26/2004 the definition of External forces to search in the direction of normals, I acknowldge the helpful insights of Herve Delingette and Maxime Sermesant of INRIA, France.
Definition at line 73 of file itkDeformableSimplexMesh3DFilter.h.
|
Definition at line 118 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 110 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 127 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 126 of file itkDeformableSimplexMesh3DFilter.h. |
|
Reimplemented from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 84 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 104 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 140 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 139 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 138 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 112 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 116 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 109 of file itkDeformableSimplexMesh3DFilter.h. |
|
Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 113 of file itkDeformableSimplexMesh3DFilter.h. |
|
Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 115 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 114 of file itkDeformableSimplexMesh3DFilter.h. |
|
Image and Image iterator definition. Definition at line 108 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 135 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 133 of file itkDeformableSimplexMesh3DFilter.h. |
|
Reimplemented from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 121 of file itkDeformableSimplexMesh3DFilter.h. |
|
Some typedefs. Reimplemented from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 93 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 128 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 129 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 97 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 98 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 96 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 111 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 125 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 134 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 132 of file itkDeformableSimplexMesh3DFilter.h. |
|
Reimplemented from itk::MeshSource< TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 122 of file itkDeformableSimplexMesh3DFilter.h. |
|
Reimplemented from itk::MeshSource< TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 94 of file itkDeformableSimplexMesh3DFilter.h. |
|
Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 105 of file itkDeformableSimplexMesh3DFilter.h. |
|
Smart pointer typedef support Reimplemented from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 83 of file itkDeformableSimplexMesh3DFilter.h. |
|
Other definitions. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 101 of file itkDeformableSimplexMesh3DFilter.h. |
|
Standard "Self" typedef. Reimplemented from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 77 of file itkDeformableSimplexMesh3DFilter.h. |
|
Standard "Superclass" typedef. Reimplemented from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. Definition at line 80 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 102 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 131 of file itkDeformableSimplexMesh3DFilter.h. |
|
|
|
|
|
|
|
|
|
Method computes the barycentric coordinates of the passed point |
|
Computes the displacement of each point. Therefore internal and external forces are computed and multiplied by the constants (alpha and beta) set by the user. |
|
Compute the external force component Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. |
|
Compute geometric properties like curvature and normals, which are necessary for the computation of the internal force components for each point of the mesh. |
|
Compute the internal force component |
|
At the and of the deformation the output mesh is created by creating a new mesh |
|
This method causes the filter to generate its output. Reimplemented from itk::ProcessObject. |
|
Get internal force scaling factor |
|
Get external force scaling factor |
|
Run-time type information (and related methods). Reimplemented from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. |
|
Get reference metrics update scaling factor |
|
|
|
Get reference metrics update scaling factor |
|
Getter for gradient image |
|
Width, height and depth opf image |
|
Width, height and depth opf image |
|
Width, height and depth opf image |
|
Set number of iterations for deformation process |
|
control number of degrees of freedom |
|
control the range of search for Bresenham at normal line |
|
control smoothness of the mesh |
|
current iteration number |
|
Initializes the datastructures necessary for mesh deformation with the values from the passed input mesh. |
|
L function implemented follwoing the paper of Delingette |
|
Method of creation through the object factory. Reimplemented from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. |
|
Reimplemented from itk::MeshToMeshFilter< TInputMesh, TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. |
|
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes. Reimplemented from itk::MeshSource< TOutputMesh >. Reimplemented in itk::DeformableSimplexMesh3DBalloonForceFilter< TInputMesh, TOutputMesh >. |
|
Set scalar factor for internal force |
|
Set external force scaling factor |
|
Set reference metrics update scaling factor |
|
|
|
Set reference metrics update scaling factor |
|
Setter for gradient image |
|
Set number of iterations for deformation process |
|
control number of degrees of freedom |
|
Set Maximum Gradient Magnitude of Gradient Image |
|
control the range of search for Bresenham at normal line |
|
control smoothness of the mesh |
|
Method updates the reference metrics for each mesh point |
|
Scalar defining the influence of the internal forces Values should lie between 0.001 and 0.3. Higher values increase the stiffness of the mesh Definition at line 301 of file itkDeformableSimplexMesh3DFilter.h. |
|
Scalar defining the influence of the external force components The choice for this parameter strongly depends on the underlying data. Typical value range from 0.00001 to 0.3 Definition at line 309 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 319 of file itkDeformableSimplexMesh3DFilter.h. |
|
map stores a Geometry object for every mesh point Definition at line 360 of file itkDeformableSimplexMesh3DFilter.h. |
|
Gamma influneces the distribution of the mesh points. It should lie between 0.01 and 0.2. Smaller values force the mesh to be more regular. When increasing gamma, mesh points will have higher density in places of high curvature. Definition at line 317 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 363 of file itkDeformableSimplexMesh3DFilter.h. |
|
Image size Definition at line 350 of file itkDeformableSimplexMesh3DFilter.h. |
|
Image size Definition at line 347 of file itkDeformableSimplexMesh3DFilter.h. |
|
Image size Definition at line 344 of file itkDeformableSimplexMesh3DFilter.h. |
|
This threshold decides when to stop the model. Definition at line 353 of file itkDeformableSimplexMesh3DFilter.h. |
|
Lambda is called the "locality" parameter and it controls the number of degrees of freedom Definition at line 331 of file itkDeformableSimplexMesh3DFilter.h. |
|
Definition at line 356 of file itkDeformableSimplexMesh3DFilter.h. |
|
Range of search for Bresenham algorithm (normal line at each vertex) Definition at line 337 of file itkDeformableSimplexMesh3DFilter.h. |
|
This scalar determines the smoothness of the surface model. Values should range from 0 to 10. It determines the radius of the neighborhood during internal force computation using the curvature shape contraint. The higher the rigidity the higher the smoothness. Definition at line 326 of file itkDeformableSimplexMesh3DFilter.h. |
|
Number of iterations Definition at line 341 of file itkDeformableSimplexMesh3DFilter.h. |