OTB  9.0.0
Orfeo Toolbox
Public Types | Public Member Functions | Static Public Member Functions | List of all members
otb::QuadraticallyConstrainedSimpleSolver< ValueType > Class Template Reference

#include <otbQuadraticallyConstrainedSimpleSolver.h>

+ Inheritance diagram for otb::QuadraticallyConstrainedSimpleSolver< ValueType >:
+ Collaboration diagram for otb::QuadraticallyConstrainedSimpleSolver< ValueType >:

Public Types

typedef itk::SmartPointer< const SelfConstPointer
 
typedef vnl_matrix< double > DoubleMatrixType
 
typedef vnl_vector< double > DoubleVectorType
 
typedef std::vector< unsigned int > ListIndexType
 
enum  ObjectiveFunctionType {
  Cost_Function_rmse,
  Cost_Function_musig,
  Cost_Function_mu,
  Cost_Function_weighted_musig
}
 
typedef itk::SmartPointer< SelfPointer
 
typedef vnl_matrix< ValueType > RealMatrixType
 
typedef vnl_vector< ValueType > RealVectorType
 
typedef QuadraticallyConstrainedSimpleSolver Self
 
typedef itk::LightObject Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const char * GetNameOfClass () const
 

Static Public Member Functions

static Pointer New ()
 
RealMatrixType m_MeanInOverlaps
 
RealMatrixType m_StandardDeviationInOverlaps
 
RealMatrixType m_AreaInOverlaps
 
RealMatrixType m_MeanOfProductsInOverlaps
 
ValueType m_WeightOfStandardDeviationTerm
 
RealVectorType m_OutputCorrectionModel
 
ObjectiveFunctionType oft
 
void SetMeanInOverlaps (const RealMatrixType &matrix)
 
const RealMatrixType GetMeanInOverlaps ()
 
void SetStandardDeviationInOverlaps (const RealMatrixType &matrix)
 
const RealMatrixType GetStandardDeviationInOverlaps ()
 
void SetAreaInOverlaps (const RealMatrixType &matrix)
 
const RealMatrixType GetAreaInOverlaps ()
 
void SetMeanOfProductsInOverlaps (const RealMatrixType &matrix)
 
const RealMatrixType GetMeanOfProductsInOverlaps ()
 
const RealVectorType GetOutputCorrectionModel ()
 
void SetWeightOfStandardDeviationTerm (ValueType weight)
 
ValueType GetWeightOfStandardDeviationTerm ()
 
void Solve ()
 
void SetMeanBased ()
 
void SetMeanAndStandardDeviationBased ()
 
void SetRMSEBased ()
 
void SetWeightedMeanAndStandardDeviationBased ()
 
 QuadraticallyConstrainedSimpleSolver ()
 
virtual ~QuadraticallyConstrainedSimpleSolver ()
 
void CheckInputs (void) const
 
void DFS (std::vector< bool > &marked, unsigned int s) const
 
const DoubleMatrixType GetQuadraticObjectiveMatrix (const DoubleMatrixType &areas, const DoubleMatrixType &means, const DoubleMatrixType &stds, const DoubleMatrixType &mops)
 
const DoubleMatrixType ExtractMatrix (const RealMatrixType &mat, const ListIndexType &idx)
 

Detailed Description

template<class ValueType>
class otb::QuadraticallyConstrainedSimpleSolver< ValueType >

Solves the optimisation problem for radiometric harmonisation of multiple overlapping images.

This solver inputs statistics of the overlapping images, and produces a zero-y intercept linear correction model. Various cost functions can be employed: RMSE based, Mean based, Mean+Standard deviation based, and Mean

Inputs: -N x N Matrix of mean of overlaps ij -N x N Matrix of standard deviation of overlaps ij -N x N Matrix of area of overlaps ij -N x N Matrix of mean of pixels products of overlaps ij

For all i and j, m_{ij} = stats of image i in overlap ij

Output: N x 1 Vector of scales to apply to images

For more details, see Cresson, Remi, and Nathalie Saint-Geours. "Natural color satellite image mosaicking using quadratic programming in decorrelated color space." IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing 8.8 (2015): 4151-4162.

https://doi.org/10.1109/JSTARS.2015.2449233 https://hal.archives-ouvertes.fr/hal-01373314/file/cresson2015.pdf

Definition at line 66 of file otbQuadraticallyConstrainedSimpleSolver.h.

Member Typedef Documentation

◆ ConstPointer

template<class ValueType >
typedef itk::SmartPointer<const Self> otb::QuadraticallyConstrainedSimpleSolver< ValueType >::ConstPointer

Definition at line 73 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ DoubleMatrixType

template<class ValueType >
typedef vnl_matrix<double> otb::QuadraticallyConstrainedSimpleSolver< ValueType >::DoubleMatrixType

Definition at line 84 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ DoubleVectorType

template<class ValueType >
typedef vnl_vector<double> otb::QuadraticallyConstrainedSimpleSolver< ValueType >::DoubleVectorType

Definition at line 85 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ ListIndexType

template<class ValueType >
typedef std::vector<unsigned int> otb::QuadraticallyConstrainedSimpleSolver< ValueType >::ListIndexType

Definition at line 86 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ Pointer

template<class ValueType >
typedef itk::SmartPointer<Self> otb::QuadraticallyConstrainedSimpleSolver< ValueType >::Pointer

Definition at line 72 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ RealMatrixType

template<class ValueType >
typedef vnl_matrix<ValueType> otb::QuadraticallyConstrainedSimpleSolver< ValueType >::RealMatrixType

Typedefs

Definition at line 79 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ RealVectorType

template<class ValueType >
typedef vnl_vector<ValueType> otb::QuadraticallyConstrainedSimpleSolver< ValueType >::RealVectorType

Definition at line 83 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ Self

Standard class typedef

Definition at line 70 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ Superclass

template<class ValueType >
typedef itk::LightObject otb::QuadraticallyConstrainedSimpleSolver< ValueType >::Superclass

Definition at line 71 of file otbQuadraticallyConstrainedSimpleSolver.h.

Member Enumeration Documentation

◆ ObjectiveFunctionType

Enum for objective function type

Enumerator
Cost_Function_rmse 
Cost_Function_musig 
Cost_Function_mu 
Cost_Function_weighted_musig 

Definition at line 89 of file otbQuadraticallyConstrainedSimpleSolver.h.

Constructor & Destructor Documentation

◆ QuadraticallyConstrainedSimpleSolver()

template<class ValueType >
otb::QuadraticallyConstrainedSimpleSolver< ValueType >::QuadraticallyConstrainedSimpleSolver
protected

Mean-in-overlaps matrix

Definition at line 31 of file otbQuadraticallyConstrainedSimpleSolver.hxx.

◆ ~QuadraticallyConstrainedSimpleSolver()

template<class ValueType >
otb::QuadraticallyConstrainedSimpleSolver< ValueType >::~QuadraticallyConstrainedSimpleSolver
protectedvirtual

Mean-in-overlaps matrix

Definition at line 38 of file otbQuadraticallyConstrainedSimpleSolver.hxx.

Member Function Documentation

◆ CheckInputs()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::CheckInputs ( void  ) const
private

Mean-in-overlaps matrix

Definition at line 69 of file otbQuadraticallyConstrainedSimpleSolver.hxx.

◆ CreateAnother()

template<class ValueType >
virtual::itk::LightObject::Pointer otb::QuadraticallyConstrainedSimpleSolver< ValueType >::CreateAnother ( void  ) const

◆ DFS()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::DFS ( std::vector< bool > &  marked,
unsigned int  s 
) const
private

Mean-in-overlaps matrix

Definition at line 49 of file otbQuadraticallyConstrainedSimpleSolver.hxx.

◆ ExtractMatrix()

template<class ValueType >
const QuadraticallyConstrainedSimpleSolver< ValueType >::DoubleMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::ExtractMatrix ( const RealMatrixType mat,
const ListIndexType idx 
)
private

Mean-in-overlaps matrix

Definition at line 193 of file otbQuadraticallyConstrainedSimpleSolver.hxx.

◆ GetAreaInOverlaps()

template<class ValueType >
const RealMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::GetAreaInOverlaps ( )
inline

Mean-in-overlaps matrix

Definition at line 124 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ GetMeanInOverlaps()

template<class ValueType >
const RealMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::GetMeanInOverlaps ( )
inline

Mean-in-overlaps matrix

Definition at line 102 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ GetMeanOfProductsInOverlaps()

template<class ValueType >
const RealMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::GetMeanOfProductsInOverlaps ( )
inline

Mean-in-overlaps matrix

Definition at line 135 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ GetNameOfClass()

template<class ValueType >
virtual const char* otb::QuadraticallyConstrainedSimpleSolver< ValueType >::GetNameOfClass ( ) const
virtual

Runtime information support.

◆ GetOutputCorrectionModel()

template<class ValueType >
const RealVectorType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::GetOutputCorrectionModel ( )
inline

Output correction model

Definition at line 142 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ GetQuadraticObjectiveMatrix()

template<class ValueType >
const QuadraticallyConstrainedSimpleSolver< ValueType >::DoubleMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::GetQuadraticObjectiveMatrix ( const DoubleMatrixType areas,
const DoubleMatrixType means,
const DoubleMatrixType stds,
const DoubleMatrixType mops 
)
private

Mean-in-overlaps matrix

Definition at line 127 of file otbQuadraticallyConstrainedSimpleSolver.hxx.

◆ GetStandardDeviationInOverlaps()

template<class ValueType >
const RealMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::GetStandardDeviationInOverlaps ( )
inline

Mean-in-overlaps matrix

Definition at line 113 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ GetWeightOfStandardDeviationTerm()

template<class ValueType >
ValueType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::GetWeightOfStandardDeviationTerm ( )
inline

Mean-in-overlaps matrix

Definition at line 157 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ New()

template<class ValueType >
static Pointer otb::QuadraticallyConstrainedSimpleSolver< ValueType >::New ( )
static

Method for creation through the object factory.

◆ SetAreaInOverlaps()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::SetAreaInOverlaps ( const RealMatrixType matrix)
inline

Area-in-overlaps matrix

Definition at line 120 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ SetMeanAndStandardDeviationBased()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::SetMeanAndStandardDeviationBased ( )
inline

Mean-in-overlaps matrix

Definition at line 171 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ SetMeanBased()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::SetMeanBased ( )
inline

Set the cost function type

Definition at line 167 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ SetMeanInOverlaps()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::SetMeanInOverlaps ( const RealMatrixType matrix)
inline

Mean-in-overlaps matrix

Definition at line 98 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ SetMeanOfProductsInOverlaps()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::SetMeanOfProductsInOverlaps ( const RealMatrixType matrix)
inline

Mean-of-pixels-products-in-overlaps matrix

Definition at line 131 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ SetRMSEBased()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::SetRMSEBased ( )
inline

Mean-in-overlaps matrix

Definition at line 175 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ SetStandardDeviationInOverlaps()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::SetStandardDeviationInOverlaps ( const RealMatrixType matrix)
inline

Standard-deviation-in-overlaps matrix

Definition at line 109 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ SetWeightedMeanAndStandardDeviationBased()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::SetWeightedMeanAndStandardDeviationBased ( )
inline

Mean-in-overlaps matrix

Definition at line 179 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ SetWeightOfStandardDeviationTerm()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::SetWeightOfStandardDeviationTerm ( ValueType  weight)
inline

STD weight in harmonization if value is near 0, importance is accorded to MEAN if value is 1, importance is the same than MEAN if value is higher than 1, importance is accorder to STD

Definition at line 153 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ Solve()

template<class ValueType >
void otb::QuadraticallyConstrainedSimpleSolver< ValueType >::Solve

Solving routine

Definition at line 213 of file otbQuadraticallyConstrainedSimpleSolver.hxx.

Member Data Documentation

◆ m_AreaInOverlaps

template<class ValueType >
RealMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::m_AreaInOverlaps
private

Mean-in-overlaps matrix

Definition at line 206 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ m_MeanInOverlaps

template<class ValueType >
RealMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::m_MeanInOverlaps
private

Mean-in-overlaps matrix

Definition at line 204 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ m_MeanOfProductsInOverlaps

template<class ValueType >
RealMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::m_MeanOfProductsInOverlaps
private

Mean-in-overlaps matrix

Definition at line 207 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ m_OutputCorrectionModel

template<class ValueType >
RealVectorType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::m_OutputCorrectionModel
private

Mean-in-overlaps matrix

Definition at line 213 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ m_StandardDeviationInOverlaps

template<class ValueType >
RealMatrixType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::m_StandardDeviationInOverlaps
private

Mean-in-overlaps matrix

Definition at line 205 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ m_WeightOfStandardDeviationTerm

template<class ValueType >
ValueType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::m_WeightOfStandardDeviationTerm
private

Mean-in-overlaps matrix

Definition at line 210 of file otbQuadraticallyConstrainedSimpleSolver.h.

◆ oft

template<class ValueType >
ObjectiveFunctionType otb::QuadraticallyConstrainedSimpleSolver< ValueType >::oft
private

Mean-in-overlaps matrix

Definition at line 216 of file otbQuadraticallyConstrainedSimpleSolver.h.


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