SMIL  1.0.4
Geodesic Tools

Geodesic Tools. More...

Detailed Description

Geodesic Tools.

Let's talk about Geodesic tools and thinning...

[12]

+ Collaboration diagram for Geodesic Tools:

Functions

template<typename T1 , typename T2 >
RES_T labelFlatZonesWithProperty (const Image< T1 > &imIn, Image< T2 > &imOut, string property="geodesicDiameter")
 labelFlatZonesWithProperty() : Evaluate a prpperty for each flat zone in a gray scale image More...
 
template<typename T1 , typename T2 >
RES_T geodesicDiameter (const Image< T1 > &imIn, Image< T2 > &imOut, bool sliceBySlice=false, double dzOverDx=1.)
 geodesicDiameter() - Barycenter Geodesic Diameter More...
 
template<typename T1 , typename T2 >
RES_T geodesicElongation (const Image< T1 > &imIn, Image< T2 > &imOut, bool sliceBySlice=false, double dzOverDx=1.)
 geodesicElongation() - Geodesic Elongation More...
 
template<typename T1 , typename T2 >
RES_T geodesicTortuosity (const Image< T1 > &imIn, Image< T2 > &imOut, bool sliceBySlice=false)
 geodesicTortuosity() - Geodesic Tortuoisity More...
 
template<typename T1 , typename T2 >
RES_T geodesicExtremities (const Image< T1 > &imIn, Image< T2 > &imOut, bool sliceBySlice=false, double dzOverDx=1.)
 geodesicExtremities() - Geodesic Extremities More...
 
template<typename T1 , typename T2 >
RES_T geodesicProperty (const Image< T1 > &imIn, Image< T2 > &imOut, string property="geodesicDiameter", bool sliceBySlice=false, double dzOverDx=1.)
 geodesicProperty() - More...
 
template<typename T1 , typename T2 >
RES_T geodesicPathOpening (const Image< T1 > &imIn, Image< T2 > &imOut, double lenght, string property="geodesicDiameter", double scaleX=1., double scaleY=1., double scaleZ=1.)
 geodesicPathOpening() - More...
 
template<typename T1 , typename T2 >
RES_T geodesicPathClosing (const Image< T1 > &imIn, Image< T2 > &imOut, double lenght, string property="geodesicDiameter", double scaleX=1., double scaleY=1., double scaleZ=1.)
 geodesicPathClosing() - More...
 
template<typename T1 , typename T2 >
RES_T geodesicUltimatePathOpening (const Image< T1 > &imIn, Image< T1 > &imTrans, Image< T2 > &imInd, double scaleX, double scaleY, double scaleZ, size_t stop, int lambdaAttribute, int takeMin)
 geodesicUltimatePathOpening() - More...
 
template<typename T1 , typename T2 >
RES_T geodesicUltimatePathClosing (const Image< T1 > &imIn, Image< T1 > &imTrans, Image< T2 > &imInd, double scaleX, double scaleY, double scaleZ, size_t stop, int lambdaAttribute, int takeMin)
 geodesicUltimatePathClosing() - More...
 

Function Documentation

◆ labelFlatZonesWithProperty()

RES_T smil::labelFlatZonesWithProperty ( const Image< T1 > &  imIn,
Image< T2 > &  imOut,
string  property = "geodesicDiameter" 
)

labelFlatZonesWithProperty() : Evaluate a prpperty for each flat zone in a gray scale image

Parameters
[in]imIn: input image
[out]imOut: output image
[in]property: one of
  • "geodesicDiameter"
  • "elongation"
  • "tortuosity"
  • "extremities"

◆ geodesicDiameter()

RES_T smil::geodesicDiameter ( const Image< T1 > &  imIn,
Image< T2 > &  imOut,
bool  sliceBySlice = false,
double  dzOverDx = 1. 
)

geodesicDiameter() - Barycenter Geodesic Diameter

This function evaluates, for each flat zone, its Barycenter Geodesic Diameter. This value is defined as the biggest Geodesic Distance between any two points in the flat zone.

  • The flat zone is labeled with the result.
See also
For a detailled description of this attribute, see [12]
Parameters
[in]imIn: binary input image
[out]imOut: output image
[in]sliceBySlice: apply the algorithm to the whole image or slice by slice
[in]dzOverDx:

◆ geodesicElongation()

RES_T smil::geodesicElongation ( const Image< T1 > &  imIn,
Image< T2 > &  imOut,
bool  sliceBySlice = false,
double  dzOverDx = 1. 
)

geodesicElongation() - Geodesic Elongation

This function evaluates, for each flat zone, its Geodesic Elongation defined by the relation :

\[ E(X) = \dfrac{\pi \:.\: L^{2}(X)}{4 \:.\: S(X)} \]

where $L(X)$ is the Geodesic Diameter of the flat zone and $S(X)$ is the Area of the flat zone.

The flat zone is labeled with the result.

See also
For a detailled description of this attribute, see [12]
Parameters
[in]imIn: binary input image
[out]imOut: output image
[in]sliceBySlice: apply the algorithm to the whole image or slice by slice
[in]dzOverDx:

◆ geodesicTortuosity()

RES_T smil::geodesicTortuosity ( const Image< T1 > &  imIn,
Image< T2 > &  imOut,
bool  sliceBySlice = false 
)

geodesicTortuosity() - Geodesic Tortuoisity

This function evaluates, for each flat zone, its Geodesic Tortuoisity defined by the relation :

\[ T(X) = \dfrac{L(X)}{L_{Euclidean}(X)} \]

where $L(X)$ is the Geodesic Diameter of the flat zone and $L_{Euclidean}(X)$ is the Euclidean Distance between the Geodesic Extremities of the flat zone.

The flat zone is labeled with the result.

See also
For a detailled description of this attribute, see [12]
Parameters
[in]imIn: binary input image
[out]imOut: output image
[in]sliceBySlice: apply the algorithm to the whole image or slice by slice

◆ geodesicExtremities()

RES_T smil::geodesicExtremities ( const Image< T1 > &  imIn,
Image< T2 > &  imOut,
bool  sliceBySlice = false,
double  dzOverDx = 1. 
)

geodesicExtremities() - Geodesic Extremities

This function finds the Geodesic Extremities of each flat zone and set the pixel value of each extremity to an integer beginning with 1.

Parameters
[in]imIn: binary input image
[out]imOut: output image
[in]sliceBySlice: apply the algorithm to the whole image or slice by slice
[in]dzOverDx:

◆ geodesicProperty()

RES_T smil::geodesicProperty ( const Image< T1 > &  imIn,
Image< T2 > &  imOut,
string  property = "geodesicDiameter",
bool  sliceBySlice = false,
double  dzOverDx = 1. 
)

geodesicProperty() -

Parameters
[in]imIn: binary input image
[out]imOut: output image
[in]property: one of
  • "geodesicDiameter"
  • "elongation"
  • "tortuosity"
  • "extremities"
[in]sliceBySlice: apply the algorithm to the whole image or slice by slice
[in]dzOverDx:

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ geodesicPathOpening()

RES_T smil::geodesicPathOpening ( const Image< T1 > &  imIn,
Image< T2 > &  imOut,
double  lenght,
string  property = "geodesicDiameter",
double  scaleX = 1.,
double  scaleY = 1.,
double  scaleZ = 1. 
)

geodesicPathOpening() -

Parameters
[in]imIn: input image
[in]lenght:
[in]property: one of
  • "geodesicDiameter"
  • "elongation"
  • "tortuosity"
  • "extremities"
[out]imOut: output image
[in]scaleX,scaleY,scaleZ:

◆ geodesicPathClosing()

RES_T smil::geodesicPathClosing ( const Image< T1 > &  imIn,
Image< T2 > &  imOut,
double  lenght,
string  property = "geodesicDiameter",
double  scaleX = 1.,
double  scaleY = 1.,
double  scaleZ = 1. 
)

geodesicPathClosing() -

Parameters
[in]imIn: input image
[in]lenght:
[in]property: one of
  • "geodesicDiameter"
  • "elongation"
  • "tortuosity"
  • "extremities"
[out]imOut: output image
[in]scaleX,scaleY,scaleZ:

◆ geodesicUltimatePathOpening()

RES_T smil::geodesicUltimatePathOpening ( const Image< T1 > &  imIn,
Image< T1 > &  imTrans,
Image< T2 > &  imInd,
double  scaleX,
double  scaleY,
double  scaleZ,
size_t  stop,
int  lambdaAttribute,
int  takeMin 
)

geodesicUltimatePathOpening() -

Parameters
[in]imIn: input image
[out]imTrans: input image
[out]imInd: input image
[in]scaleX,scaleY,scaleZ:
[in]stop:
[in]lambdaAttribute:
[in]takeMin:

◆ geodesicUltimatePathClosing()

RES_T smil::geodesicUltimatePathClosing ( const Image< T1 > &  imIn,
Image< T1 > &  imTrans,
Image< T2 > &  imInd,
double  scaleX,
double  scaleY,
double  scaleZ,
size_t  stop,
int  lambdaAttribute,
int  takeMin 
)

geodesicUltimatePathClosing() -

Parameters
[in]imIn: input image
[out]imTrans: input image
[out]imInd: input image
[in]scaleX,scaleY,scaleZ:
[in]stop:
[in]lambdaAttribute:
[in]takeMin: