OTB  10.0.0
Orfeo Toolbox
Public Member Functions | Private Attributes | List of all members
otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled > Class Template Reference

#include <otbMultiScaleConvexOrConcaveClassificationFilter.h>

Public Member Functions

TLabeled GetLabelSeparator (void)
 
double GetSigma (void)
 
 MultiScaleConvexOrConcaveDecisionRule ()
 
TLabeled operator() (const TInput &opDeMax, const TInput &cloDeMax, const TLabeled &opDeChar, const TLabeled &cloDeChar) const
 
void SetLabelSeparator (const TLabeled &labelSeparator)
 
void SetSigma (const double &sigma)
 
virtual ~MultiScaleConvexOrConcaveDecisionRule ()
 

Private Attributes

TLabeled m_LabelSeparator
 
double m_Sigma
 

Detailed Description

template<class TInput, class TLabeled>
class otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >

This Functor apply a classification rule on two membership value along with two labels.

Use otb::MultiScaleConvexOrConcaveClassificationFilter to apply it image-wise.

This algorithm is based on the following publication:
Martino Pesaresi and Jon Alti Benediktsson, Member, IEEE: A new approach for the morphological segmentation of high resolution satellite imagery. IEEE Transactions on geoscience and remote sensing, vol. 39, NO. 2, February 2001, p. 309-320.

Given $x_1$ and $x_2$ two membership values, $L_1, L_2$ two labels associated, and $\sigma$ a tolerance value, the following decision rule is applied:

\[ L=\left\{\begin{array}{lcl} L_{1} &:& x_{1}>x_{2} \quad and \quad x_{1}>\sigma\\ L_{2} &:& x_{2}>x_{1} \quad and \quad x_{2}>\sigma\\ 0 &:& otherwise. \end{array}\right. \]

To help the distinction between $L_{1}$ labels and $L_{2}$, this functor adds the m_LabelSeparators value to the $L_{1}$ labels.

This functor is the decision rule used for multi-scale classification using morphological profiles.

Definition at line 81 of file otbMultiScaleConvexOrConcaveClassificationFilter.h.

Constructor & Destructor Documentation

◆ MultiScaleConvexOrConcaveDecisionRule()

template<class TInput , class TLabeled >
otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::MultiScaleConvexOrConcaveDecisionRule ( )
inline

◆ ~MultiScaleConvexOrConcaveDecisionRule()

template<class TInput , class TLabeled >
virtual otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::~MultiScaleConvexOrConcaveDecisionRule ( )
inlinevirtual

Destructor

Definition at line 97 of file otbMultiScaleConvexOrConcaveClassificationFilter.h.

Member Function Documentation

◆ GetLabelSeparator()

template<class TInput , class TLabeled >
TLabeled otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::GetLabelSeparator ( void  )
inline

Get the label separator

Returns
the label separator

Definition at line 154 of file otbMultiScaleConvexOrConcaveClassificationFilter.h.

References otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::m_LabelSeparator.

◆ GetSigma()

template<class TInput , class TLabeled >
double otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::GetSigma ( void  )
inline

Get the tolerance value

Returns
the tolerance value

Definition at line 136 of file otbMultiScaleConvexOrConcaveClassificationFilter.h.

References otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::m_Sigma.

◆ operator()()

template<class TInput , class TLabeled >
TLabeled otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::operator() ( const TInput &  opDeMax,
const TInput &  cloDeMax,
const TLabeled &  opDeChar,
const TLabeled &  cloDeChar 
) const
inline

Label the pixel to convex, concave or flat

Returns
The label of the pixel
Parameters
opDeMaxThe max of the opening profile derivative
cloDeMaxThe max of the closing profile derivative
opDeCharThe characteristic of the opening profile
cloDeCharThe characteristic of the closing profile

Definition at line 109 of file otbMultiScaleConvexOrConcaveClassificationFilter.h.

References otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::m_LabelSeparator, and otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::m_Sigma.

◆ SetLabelSeparator()

template<class TInput , class TLabeled >
void otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::SetLabelSeparator ( const TLabeled &  labelSeparator)
inline

Set the label separator

Parameters
labelSeparatorthe label separator

Definition at line 145 of file otbMultiScaleConvexOrConcaveClassificationFilter.h.

References otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::m_LabelSeparator.

◆ SetSigma()

template<class TInput , class TLabeled >
void otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::SetSigma ( const double &  sigma)
inline

Set the tolerance value

Parameters
sigmathe tolerance value

Definition at line 127 of file otbMultiScaleConvexOrConcaveClassificationFilter.h.

References otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::m_Sigma.

Member Data Documentation

◆ m_LabelSeparator

template<class TInput , class TLabeled >
TLabeled otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::m_LabelSeparator
private

◆ m_Sigma

template<class TInput , class TLabeled >
double otb::Functor::MultiScaleConvexOrConcaveDecisionRule< TInput, TLabeled >::m_Sigma
private

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