OTB  6.7.0
Orfeo Toolbox
Public Types | Public Member Functions | Static Private Attributes | List of all members
otb::Functor::MuellerToPolarisationDegreeAndPowerFunctor< TInput, TOutput > Class Template Reference

#include <otbMuellerToPolarisationDegreeAndPowerImageFilter.h>

Public Types

typedef itk::Matrix< double, 4, 4 > MuellerMatrixType
 
typedef TOutput::ValueType OutputValueType
 
typedef itk::Vector< double, 4 > StokesVectorType
 

Public Member Functions

void operator() (TOutput &result, const TInput &Mueller) const
 
constexpr vcl_size_t OutputSize (...) const
 

Static Private Attributes

static constexpr double m_Epsilon = 1e-6
 
static constexpr double m_PI_90 = 2 * CONST_PI_180
 

Detailed Description

template<class TInput, class TOutput>
class otb::Functor::MuellerToPolarisationDegreeAndPowerFunctor< TInput, TOutput >

Evaluate the min and max polarisation degree and min and max power from the Mueller image.

The order of the channels of the input image corresponds to : $ \begin{pmatrix} {channel #0 }&{channel #1 }&{channel #2 }&{channel #3 } \\ {channel #4 }&{channel #5 }&{channel #6 }&{channel #7 } \\ {channel #8 }&{channel #9 }&{channel #10}&{channel #11} \\ {channel #12}&{channel #13}&{channel #14}&{channel #15} \\ \end{pmatrix} $

The class process step by step while $ \tau <= 45 $ and for each $ \tau $, while $ \psi <= 90 $ :

  1. Define the incident Stokes vector:
  1. Evaluate the received Stokes vector :
  1. Evaluate power $ P $ and polarisation degree $ DegP $:
  1. Keep the smallest and the biggest power ( $ P_{min}, P_{max} $) and polarisation degree ( $ DegP_{min}, DegP_{max} $) ).

Output value are:

Use otb::MuellerToPolarisationDegreeAndPowerImageFilter to apply

See Also
MuellerToCircularPolarisationImageFilter
MuellerToReciprocalCovarianceFunctor

Definition at line 83 of file otbMuellerToPolarisationDegreeAndPowerImageFilter.h.

Member Typedef Documentation

template<class TInput , class TOutput >
typedef itk::Matrix<double, 4, 4> otb::Functor::MuellerToPolarisationDegreeAndPowerFunctor< TInput, TOutput >::MuellerMatrixType
template<class TInput , class TOutput >
typedef TOutput::ValueType otb::Functor::MuellerToPolarisationDegreeAndPowerFunctor< TInput, TOutput >::OutputValueType
template<class TInput , class TOutput >
typedef itk::Vector<double, 4> otb::Functor::MuellerToPolarisationDegreeAndPowerFunctor< TInput, TOutput >::StokesVectorType

Member Function Documentation

template<class TInput , class TOutput >
void otb::Functor::MuellerToPolarisationDegreeAndPowerFunctor< TInput, TOutput >::operator() ( TOutput &  result,
const TInput &  Mueller 
) const
inline
template<class TInput , class TOutput >
constexpr vcl_size_t otb::Functor::MuellerToPolarisationDegreeAndPowerFunctor< TInput, TOutput >::OutputSize (   ...) const
inline

Member Data Documentation

template<class TInput , class TOutput >
constexpr double otb::Functor::MuellerToPolarisationDegreeAndPowerFunctor< TInput, TOutput >::m_Epsilon = 1e-6
staticprivate
template<class TInput , class TOutput >
constexpr double otb::Functor::MuellerToPolarisationDegreeAndPowerFunctor< TInput, TOutput >::m_PI_90 = 2 * CONST_PI_180
staticprivate

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