Orfeo ToolBox  4.2
Orfeo ToolBox is not a black box
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor > Class Template Reference

This class vectorizes a LabelObject to a VectorData. More...

#include <otbLabelMapToVectorDataFilter.h>

+ Inheritance diagram for otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >:
+ Collaboration diagram for otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >:

Public Types

typedef
InputLabelMapType::ConstIterator 
ConstIteratorType
 
typedef itk::SmartPointer
< const Self
ConstPointer
 
typedef
otb::CorrectPolygonFunctor
< PolygonType
CorrectFunctorType
 
typedef DataNodeType::Pointer DataNodePointerType
 
typedef
OutputVectorDataType::DataNodeType 
DataNodeType
 
typedef TFieldsFunctor FieldsFunctorType
 
typedef
otb::Functor::LabelObjectToPolygonFunctor
< LabelObjectType, PolygonType
FunctorType
 
typedef TLabelMap InputLabelMapType
 
typedef
InputLabelMapType::LabelObjectType 
LabelObjectType
 
typedef
OutputVectorDataType::ConstPointer 
OutputVectorDataConstPointer
 
typedef
OutputVectorDataType::Pointer 
OutputVectorDataPointer
 
typedef TVectorData OutputVectorDataType
 
typedef itk::SmartPointer< SelfPointer
 
typedef PolygonType::Pointer PolygonPointerType
 
typedef DataNodeType::PolygonType PolygonType
 
typedef LabelMapToVectorDataFilter Self
 
typedef VectorDataSource
< TVectorData > 
Superclass
 
- Public Types inherited from otb::VectorDataSource< TVectorData >
typedef itk::SmartPointer
< const Self
ConstPointer
 
typedef TVectorData::Pointer OutputVectorDataPointer
 
typedef TVectorData OutputVectorDataType
 
typedef itk::SmartPointer< SelfPointer
 
typedef VectorDataSource Self
 
typedef itk::ProcessObject Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
FieldsFunctorTypeGetFieldsFunctor ()
 
const InputLabelMapTypeGetInput (void)
 
const InputLabelMapTypeGetInput (unsigned int idx)
 
virtual const char * GetNameOfClass () const
 
void SetFieldsFunctor (const FieldsFunctorType &functor)
 
virtual void SetInput (const InputLabelMapType *input)
 
virtual void SetInput (unsigned int idx, const InputLabelMapType *input)
 
- Public Member Functions inherited from otb::VectorDataSource< TVectorData >
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual OutputVectorDataTypeGetOutput (void)
 
virtual OutputVectorDataTypeGetOutput (unsigned int idx)
 
virtual void GraftNthOutput (unsigned int idx, itk::DataObject *output)
 
virtual void GraftOutput (itk::DataObject *output)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from otb::VectorDataSource< TVectorData >
static Pointer New ()
 

Protected Member Functions

 LabelMapToVectorDataFilter ()
 
virtual ~LabelMapToVectorDataFilter ()
 
void GenerateData ()
 
void PrintSelf (std::ostream &os, itk::Indent indent) const
 
- Protected Member Functions inherited from otb::VectorDataSource< TVectorData >
 VectorDataSource ()
 
virtual ~VectorDataSource ()
 
virtual void AllocateOutputs ()
 
void PrintSelf (std::ostream &os, itk::Indent indent) const
 

Private Member Functions

 LabelMapToVectorDataFilter (const Self &)
 
void operator= (const Self &)
 

Private Attributes

FieldsFunctorType m_FieldsFunctor
 

Detailed Description

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
class otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >

This class vectorizes a LabelObject to a VectorData.

LabelMapToVectorDataFilter converts a LabelMap to a VectorData where all the pixels get the attribute value of the label object they belong. It uses the class otbLabelObjectToPolygonFunctor which follows a finite states machine described in

"An algorithm for the rapid computation of boundaries of run-length encoded regions", Francis K. H. Queck, in Pattern Recognition 33 (2000), p 1637-1649.

Note : the output vector data contains index coordinates (not physical coordinates). For instance, a polygon around the pixel at index (0,0) would have the following points : [-0.5,-0.5] , [0.5,-0.5] , [0.5,0.5] , [-0.5,0.5]

See Also
VectorDataSource

Definition at line 53 of file otbLabelMapToVectorDataFilter.h.

Member Typedef Documentation

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef InputLabelMapType::ConstIterator otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::ConstIteratorType

Definition at line 74 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef itk::SmartPointer<const Self> otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::ConstPointer

Definition at line 62 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef otb::CorrectPolygonFunctor<PolygonType> otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::CorrectFunctorType

Definition at line 82 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef DataNodeType::Pointer otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::DataNodePointerType

Definition at line 76 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef OutputVectorDataType::DataNodeType otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::DataNodeType

Definition at line 75 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef TFieldsFunctor otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::FieldsFunctorType

Definition at line 67 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef otb::Functor::LabelObjectToPolygonFunctor<LabelObjectType, PolygonType> otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::FunctorType

Some typedefs specific to functors

Definition at line 81 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef TLabelMap otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::InputLabelMapType

Some convenient typedefs.

Definition at line 65 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef InputLabelMapType::LabelObjectType otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::LabelObjectType

Definition at line 72 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef OutputVectorDataType::ConstPointer otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::OutputVectorDataConstPointer

Definition at line 70 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef OutputVectorDataType::Pointer otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::OutputVectorDataPointer

Definition at line 69 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef TVectorData otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::OutputVectorDataType

Definition at line 66 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef itk::SmartPointer<Self> otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::Pointer

Definition at line 61 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef PolygonType::Pointer otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::PolygonPointerType

Definition at line 78 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef DataNodeType::PolygonType otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::PolygonType

Definition at line 77 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef LabelMapToVectorDataFilter otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::Self

Standard class typedefs.

Definition at line 58 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
typedef VectorDataSource<TVectorData> otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::Superclass

Definition at line 60 of file otbLabelMapToVectorDataFilter.h.

Constructor & Destructor Documentation

template<class TLabelMap , class TVectorData , class TFieldsFunctor >
otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::LabelMapToVectorDataFilter ( )
protected

Definition at line 27 of file otbLabelMapToVectorDataFilter.txx.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
virtual otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::~LabelMapToVectorDataFilter ( )
inlineprotectedvirtual

Definition at line 112 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::LabelMapToVectorDataFilter ( const Self )
private

Member Function Documentation

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
virtual::itk::LightObject::Pointer otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::CreateAnother ( void  ) const
template<class TLabelMap , class TVectorData , class TFieldsFunctor >
void otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::GenerateData ( void  )
protected

Create usual root elements of the output vectordata

the label object

Get the polygon image of the labelobject using the functor

correct polygon if necessary

Store the label in the NodeId

Store additionnal fields given by functor

Add the polygon to the VectorData

Definition at line 78 of file otbLabelMapToVectorDataFilter.txx.

References otb::DOCUMENT, otb::FEATURE_POLYGON, and otb::FOLDER.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
FieldsFunctorType& otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::GetFieldsFunctor ( )
inline

Definition at line 105 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap , class TVectorData , class TFieldsFunctor >
const LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::InputLabelMapType * otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::GetInput ( void  )

Definition at line 55 of file otbLabelMapToVectorDataFilter.txx.

template<class TLabelMap , class TVectorData , class TFieldsFunctor >
const LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::InputLabelMapType * otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::GetInput ( unsigned int  idx)

Definition at line 69 of file otbLabelMapToVectorDataFilter.txx.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
virtual const char* otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::GetNameOfClass ( ) const
virtual

Runtime information support.

Reimplemented from otb::VectorDataSource< TVectorData >.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
static Pointer otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::New ( )
static

Standard New method.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
void otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::operator= ( const Self )
private
template<class TLabelMap , class TVectorData , class TFieldsFunctor >
void otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
protected

Definition at line 136 of file otbLabelMapToVectorDataFilter.txx.

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
void otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::SetFieldsFunctor ( const FieldsFunctorType functor)
inline

Definition at line 98 of file otbLabelMapToVectorDataFilter.h.

template<class TLabelMap , class TVectorData , class TFieldsFunctor >
void otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::SetInput ( const InputLabelMapType input)
virtual

Set/Get the LabelMap input of this process object.

Definition at line 35 of file otbLabelMapToVectorDataFilter.txx.

template<class TLabelMap , class TVectorData , class TFieldsFunctor >
void otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::SetInput ( unsigned int  idx,
const InputLabelMapType input 
)
virtual

Definition at line 45 of file otbLabelMapToVectorDataFilter.txx.

Member Data Documentation

template<class TLabelMap, class TVectorData, class TFieldsFunctor = Functor::LabelObjectFieldsFunctor<typename TLabelMap::LabelObjectType>>
FieldsFunctorType otb::LabelMapToVectorDataFilter< TLabelMap, TVectorData, TFieldsFunctor >::m_FieldsFunctor
private

Definition at line 120 of file otbLabelMapToVectorDataFilter.h.


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