OTB  9.0.0
Orfeo Toolbox
Public Types | Public Member Functions | Static Public Attributes | List of all members
otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage > Class Template Reference

#include <otbShapeAttributesLabelMapFilter.h>

+ Inheritance diagram for otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >:

Public Types

typedef LabelObjectType::ConstLineIterator ConstLineIteratorType
 
typedef unsigned int DimensionType
 
typedef FlusserPathFunction< PolygonTypeFlusserPathFunctionType
 
typedef TLabelImage LabelImageType
 
typedef TLabelObject LabelObjectType
 
typedef itk::Offset< TLabelObject::ImageDimension > OffsetType
 
typedef Functor::LabelObjectToPolygonFunctor< LabelObjectType, PolygonTypePolygonFunctorType
 
typedef TLabelObject::PolygonType PolygonType
 
typedef itk::ImageRegion< TLabelObject::ImageDimension > RegionType
 
typedef ShapeAttributesLabelObjectFunctor Self
 
typedef SimplifyPathFunctor< PolygonType, PolygonTypeSimplifyPolygonFunctorType
 

Public Member Functions

 ShapeAttributesLabelObjectFunctor ()
 
virtual ~ShapeAttributesLabelObjectFunctor ()
 

Static Public Attributes

static const unsigned int ImageDimension = TLabelObject::ImageDimension
 
typedef itk::Offset< 2 > Offset2Type
 
typedef itk::Offset< 3 > Offset3Type
 
typedef itk::Vector< double, 2 > Spacing2Type
 
typedef itk::Vector< double, 3 > Spacing3Type
 
typedef std::map< Offset2Type, itk::SizeValueType, Offset2Type::LexicographicCompare > MapIntercept2Type
 
typedef std::map< Offset3Type, itk::SizeValueType, Offset3Type::LexicographicCompare > MapIntercept3Type
 
bool m_ComputeFeretDiameter
 
bool m_ComputePerimeter
 
bool m_ComputeFlusser
 
bool m_ComputePolygon
 
bool m_ReducedAttributeSet
 
LabelImageType::ConstPointer m_LabelImage
 
bool operator!= (const Self &self)
 
bool operator== (const Self &self)
 
void SetComputePerimeter (bool flag)
 
bool GetComputePerimeter () const
 
void SetComputeFlusser (bool flag)
 
bool GetComputeFlusser () const
 
void SetComputePolygon (bool flag)
 
bool GetComputePolygon () const
 
void SetComputeFeretDiameter (bool flag)
 
bool GetComputeFeretDiameter () const
 
void SetReducedAttributeSet (bool flag)
 
bool GetReducedAttributeSet () const
 
void SetLabelImage (const TLabelImage *image)
 
const TLabelImage * GetLabelImage () const
 
void operator() (LabelObjectType *lo)
 
static long factorial (long n)
 
static long doubleFactorial (long n)
 
static double gammaN2p1 (long n)
 
static double hyperSphereVolume (double radius)
 
static double hyperSpherePerimeter (double radius)
 
static double hyperSphereRadiusFromVolume (double volume)
 
double ComputePerimeter (LabelObjectType *labelObject, const RegionType &region)
 
template<class TMapIntercept , class TSpacing >
double PerimeterFromInterceptCount (TMapIntercept &intercepts, const TSpacing &spacing)
 
double PerimeterFromInterceptCount (MapIntercept2Type &intercepts, const Spacing2Type spacing)
 
double PerimeterFromInterceptCount (MapIntercept3Type &intercepts, const Spacing3Type spacing)
 

Detailed Description

template<class TLabelObject, class TLabelImage>
class otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >

Functor to compute shape attributes of one LabelObject.

See also
ShapeAttributesLabelMapFilter

Definition at line 46 of file otbShapeAttributesLabelMapFilter.h.

Member Typedef Documentation

◆ ConstLineIteratorType

template<class TLabelObject , class TLabelImage >
typedef LabelObjectType::ConstLineIterator otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::ConstLineIteratorType

Const iterator over LabelObject lines

Definition at line 56 of file otbShapeAttributesLabelMapFilter.h.

◆ DimensionType

template<class TLabelObject , class TLabelImage >
typedef unsigned int otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::DimensionType

Definition at line 67 of file otbShapeAttributesLabelMapFilter.h.

◆ FlusserPathFunctionType

template<class TLabelObject , class TLabelImage >
typedef FlusserPathFunction<PolygonType> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::FlusserPathFunctionType

Definition at line 64 of file otbShapeAttributesLabelMapFilter.h.

◆ LabelImageType

template<class TLabelObject , class TLabelImage >
typedef TLabelImage otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::LabelImageType

Labeled image type

Definition at line 59 of file otbShapeAttributesLabelMapFilter.h.

◆ LabelObjectType

template<class TLabelObject , class TLabelImage >
typedef TLabelObject otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::LabelObjectType

LabelObject typedef

Definition at line 53 of file otbShapeAttributesLabelMapFilter.h.

◆ MapIntercept2Type

template<class TLabelObject , class TLabelImage >
typedef std::map<Offset2Type, itk::SizeValueType, Offset2Type::LexicographicCompare> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::MapIntercept2Type
private

Do we compute the feret diameter ?

Definition at line 154 of file otbShapeAttributesLabelMapFilter.h.

◆ MapIntercept3Type

template<class TLabelObject , class TLabelImage >
typedef std::map<Offset3Type, itk::SizeValueType, Offset3Type::LexicographicCompare> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::MapIntercept3Type
private

Do we compute the feret diameter ?

Definition at line 155 of file otbShapeAttributesLabelMapFilter.h.

◆ Offset2Type

template<class TLabelObject , class TLabelImage >
typedef itk::Offset<2> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::Offset2Type
private

Do we compute the feret diameter ?

Definition at line 150 of file otbShapeAttributesLabelMapFilter.h.

◆ Offset3Type

template<class TLabelObject , class TLabelImage >
typedef itk::Offset<3> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::Offset3Type
private

Do we compute the feret diameter ?

Definition at line 151 of file otbShapeAttributesLabelMapFilter.h.

◆ OffsetType

template<class TLabelObject , class TLabelImage >
typedef itk::Offset<TLabelObject::ImageDimension> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::OffsetType

Definition at line 72 of file otbShapeAttributesLabelMapFilter.h.

◆ PolygonFunctorType

template<class TLabelObject , class TLabelImage >
typedef Functor::LabelObjectToPolygonFunctor<LabelObjectType, PolygonType> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::PolygonFunctorType

Definition at line 63 of file otbShapeAttributesLabelMapFilter.h.

◆ PolygonType

template<class TLabelObject , class TLabelImage >
typedef TLabelObject::PolygonType otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::PolygonType

Flusser moments typedef

Definition at line 62 of file otbShapeAttributesLabelMapFilter.h.

◆ RegionType

template<class TLabelObject , class TLabelImage >
typedef itk::ImageRegion<TLabelObject::ImageDimension> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::RegionType

Definition at line 71 of file otbShapeAttributesLabelMapFilter.h.

◆ Self

template<class TLabelObject , class TLabelImage >
typedef ShapeAttributesLabelObjectFunctor otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::Self

Self typedef

Definition at line 50 of file otbShapeAttributesLabelMapFilter.h.

◆ SimplifyPolygonFunctorType

template<class TLabelObject , class TLabelImage >
typedef SimplifyPathFunctor<PolygonType, PolygonType> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::SimplifyPolygonFunctorType

Definition at line 65 of file otbShapeAttributesLabelMapFilter.h.

◆ Spacing2Type

template<class TLabelObject , class TLabelImage >
typedef itk::Vector<double, 2> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::Spacing2Type
private

Do we compute the feret diameter ?

Definition at line 152 of file otbShapeAttributesLabelMapFilter.h.

◆ Spacing3Type

template<class TLabelObject , class TLabelImage >
typedef itk::Vector<double, 3> otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::Spacing3Type
private

Do we compute the feret diameter ?

Definition at line 153 of file otbShapeAttributesLabelMapFilter.h.

Constructor & Destructor Documentation

◆ ShapeAttributesLabelObjectFunctor()

template<class TLabelObject , class TLabelImage >
otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::ShapeAttributesLabelObjectFunctor

Constructor

Definition at line 46 of file otbShapeAttributesLabelMapFilter.hxx.

◆ ~ShapeAttributesLabelObjectFunctor()

template<class TLabelObject , class TLabelImage >
virtual otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::~ShapeAttributesLabelObjectFunctor ( )
inlinevirtual

Destructor

Definition at line 78 of file otbShapeAttributesLabelMapFilter.h.

Member Function Documentation

◆ ComputePerimeter()

template<class TLabelObject , class TLabelImage >
double otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::ComputePerimeter ( LabelObjectType labelObject,
const RegionType region 
)
private

Do we compute the feret diameter ?

Definition at line 655 of file otbShapeAttributesLabelMapFilter.hxx.

◆ doubleFactorial()

template<class TLabelObject , class TLabelImage >
long otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::doubleFactorial ( long  n)
staticprivate

Convenience internal method

Definition at line 938 of file otbShapeAttributesLabelMapFilter.hxx.

◆ factorial()

template<class TLabelObject , class TLabelImage >
long otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::factorial ( long  n)
staticprivate

Convenience internal method

Definition at line 926 of file otbShapeAttributesLabelMapFilter.hxx.

◆ gammaN2p1()

template<class TLabelObject , class TLabelImage >
double otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::gammaN2p1 ( long  n)
staticprivate

Convenience internal method

Definition at line 950 of file otbShapeAttributesLabelMapFilter.hxx.

◆ GetComputeFeretDiameter()

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::GetComputeFeretDiameter

Get the compute feret diameter flag

Definition at line 127 of file otbShapeAttributesLabelMapFilter.hxx.

◆ GetComputeFlusser()

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::GetComputeFlusser

Get the compute perimeter flag

Get the compute Flusser flag

Definition at line 113 of file otbShapeAttributesLabelMapFilter.hxx.

◆ GetComputePerimeter()

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::GetComputePerimeter

Get the compute perimeter flag

Definition at line 85 of file otbShapeAttributesLabelMapFilter.hxx.

◆ GetComputePolygon()

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::GetComputePolygon

Get the polygonalisation flag

Get the compute polygon flag

Definition at line 99 of file otbShapeAttributesLabelMapFilter.hxx.

◆ GetLabelImage()

template<class TLabelObject , class TLabelImage >
const TLabelImage * otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::GetLabelImage

Get the label image

Definition at line 156 of file otbShapeAttributesLabelMapFilter.hxx.

◆ GetReducedAttributeSet()

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::GetReducedAttributeSet

Get the compute reduced attributes set flag

Definition at line 141 of file otbShapeAttributesLabelMapFilter.hxx.

◆ hyperSpherePerimeter()

template<class TLabelObject , class TLabelImage >
double otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::hyperSpherePerimeter ( double  radius)
staticprivate

Convenience internal method

Definition at line 974 of file otbShapeAttributesLabelMapFilter.hxx.

◆ hyperSphereRadiusFromVolume()

template<class TLabelObject , class TLabelImage >
double otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::hyperSphereRadiusFromVolume ( double  volume)
staticprivate

Convenience internal method

Definition at line 981 of file otbShapeAttributesLabelMapFilter.hxx.

◆ hyperSphereVolume()

template<class TLabelObject , class TLabelImage >
double otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::hyperSphereVolume ( double  radius)
staticprivate

Convenience internal method

Definition at line 966 of file otbShapeAttributesLabelMapFilter.hxx.

◆ operator!=()

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::operator!= ( const Self self)

The comparators

The comparator (!=)

Definition at line 53 of file otbShapeAttributesLabelMapFilter.hxx.

◆ operator()()

template<class TLabelObject , class TLabelImage >
void otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::operator() ( LabelObjectType lo)
inline

This is the functor implementation Calling the functor on a label object will update its shape attributes

Definition at line 166 of file otbShapeAttributesLabelMapFilter.hxx.

◆ operator==()

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::operator== ( const Self self)

The comparator (==)

Definition at line 70 of file otbShapeAttributesLabelMapFilter.hxx.

◆ PerimeterFromInterceptCount() [1/3]

template<class TLabelObject , class TLabelImage >
double otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::PerimeterFromInterceptCount ( MapIntercept2Type intercepts,
const Spacing2Type  spacing 
)
private

Do we compute the feret diameter ?

Definition at line 848 of file otbShapeAttributesLabelMapFilter.hxx.

◆ PerimeterFromInterceptCount() [2/3]

template<class TLabelObject , class TLabelImage >
double otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::PerimeterFromInterceptCount ( MapIntercept3Type intercepts,
const Spacing3Type  spacing 
)
private

Do we compute the feret diameter ?

Definition at line 871 of file otbShapeAttributesLabelMapFilter.hxx.

◆ PerimeterFromInterceptCount() [3/3]

template<class TLabelObject , class TLabelImage >
template<class TMapIntercept , class TSpacing >
double otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::PerimeterFromInterceptCount ( TMapIntercept &  intercepts,
const TSpacing &  spacing 
)
private

Do we compute the feret diameter ?

Definition at line 821 of file otbShapeAttributesLabelMapFilter.hxx.

◆ SetComputeFeretDiameter()

template<class TLabelObject , class TLabelImage >
void otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::SetComputeFeretDiameter ( bool  flag)

Set the compute feret diameter flag

Definition at line 120 of file otbShapeAttributesLabelMapFilter.hxx.

◆ SetComputeFlusser()

template<class TLabelObject , class TLabelImage >
void otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::SetComputeFlusser ( bool  flag)

Set the compute perimeter flag

Set the compute Flusser flag

Definition at line 106 of file otbShapeAttributesLabelMapFilter.hxx.

◆ SetComputePerimeter()

template<class TLabelObject , class TLabelImage >
void otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::SetComputePerimeter ( bool  flag)

Set the compute perimeter flag

Definition at line 78 of file otbShapeAttributesLabelMapFilter.hxx.

◆ SetComputePolygon()

template<class TLabelObject , class TLabelImage >
void otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::SetComputePolygon ( bool  flag)

Set the polygonalisation flag

Set the compute polygon flag

Definition at line 92 of file otbShapeAttributesLabelMapFilter.hxx.

◆ SetLabelImage()

template<class TLabelObject , class TLabelImage >
void otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::SetLabelImage ( const TLabelImage *  image)

Set the label image (used only to compute the Feret diameter

Definition at line 149 of file otbShapeAttributesLabelMapFilter.hxx.

◆ SetReducedAttributeSet()

template<class TLabelObject , class TLabelImage >
void otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::SetReducedAttributeSet ( bool  flag)

Set the compute reduced attributes set flag

Definition at line 134 of file otbShapeAttributesLabelMapFilter.hxx.

Member Data Documentation

◆ ImageDimension

template<class TLabelObject , class TLabelImage >
const unsigned int otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::ImageDimension = TLabelObject::ImageDimension
static

ImageDimension constants

Definition at line 70 of file otbShapeAttributesLabelMapFilter.h.

◆ m_ComputeFeretDiameter

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::m_ComputeFeretDiameter
private

Do we compute the feret diameter ?

Definition at line 166 of file otbShapeAttributesLabelMapFilter.h.

◆ m_ComputeFlusser

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::m_ComputeFlusser
private

Do we compute flusser moments ?

Definition at line 172 of file otbShapeAttributesLabelMapFilter.h.

◆ m_ComputePerimeter

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::m_ComputePerimeter
private

Do we compute the perimeter ?

Definition at line 169 of file otbShapeAttributesLabelMapFilter.h.

◆ m_ComputePolygon

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::m_ComputePolygon
private

Do we polygonise ?

Definition at line 175 of file otbShapeAttributesLabelMapFilter.h.

◆ m_LabelImage

template<class TLabelObject , class TLabelImage >
LabelImageType::ConstPointer otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::m_LabelImage
private

The label image is used to compute the feret diameter

Definition at line 181 of file otbShapeAttributesLabelMapFilter.h.

◆ m_ReducedAttributeSet

template<class TLabelObject , class TLabelImage >
bool otb::Functor::ShapeAttributesLabelObjectFunctor< TLabelObject, TLabelImage >::m_ReducedAttributeSet
private

Compute only a reduced attribute set

Definition at line 178 of file otbShapeAttributesLabelMapFilter.h.


The documentation for this class was generated from the following files: