22 #ifndef QuadraticallyConstrainedSimpleSolver_H_
23 #define QuadraticallyConstrainedSimpleSolver_H_
25 #include "itkObjectFactory.h"
26 #include "itkLightObject.h"
27 #include "itkNumericTraits.h"
28 #include <vnl/vnl_matrix.h>
29 #include "vnl/algo/vnl_solve_qp.h"
65 template <
class ValueType>
94 Cost_Function_weighted_musig
104 return m_MeanInOverlaps;
115 return m_StandardDeviationInOverlaps;
126 return m_AreaInOverlaps;
137 return m_MeanOfProductsInOverlaps;
144 return m_OutputCorrectionModel;
155 m_WeightOfStandardDeviationTerm = weight;
159 return m_WeightOfStandardDeviationTerm;
169 oft = Cost_Function_mu;
173 oft = Cost_Function_musig;
177 oft = Cost_Function_rmse;
181 oft = Cost_Function_weighted_musig;
191 void CheckInputs(
void)
const;
194 void DFS(std::vector<bool>& marked,
unsigned int s)
const;
197 const DoubleMatrixType GetQuadraticObjectiveMatrix(
const DoubleMatrixType& areas,
const DoubleMatrixType& means,
const DoubleMatrixType& stds,
198 const DoubleMatrixType& mops);
201 const DoubleMatrixType ExtractMatrix(
const RealMatrixType& mat,
const ListIndexType& idx);
220 #ifndef OTB_MANUAL_INSTANTIATION
Solves the optimisation problem for radiometric harmonisation of multiple overlapping images.
const RealVectorType GetOutputCorrectionModel()
RealMatrixType m_MeanOfProductsInOverlaps
void SetWeightedMeanAndStandardDeviationBased()
ValueType GetWeightOfStandardDeviationTerm()
vnl_matrix< double > DoubleMatrixType
const RealMatrixType GetAreaInOverlaps()
itk::SmartPointer< Self > Pointer
vnl_vector< ValueType > RealVectorType
vnl_vector< double > DoubleVectorType
RealMatrixType m_MeanInOverlaps
itk::SmartPointer< const Self > ConstPointer
QuadraticallyConstrainedSimpleSolver Self
void SetWeightOfStandardDeviationTerm(ValueType weight)
void SetMeanAndStandardDeviationBased()
void SetMeanInOverlaps(const RealMatrixType &matrix)
const RealMatrixType GetMeanOfProductsInOverlaps()
void SetAreaInOverlaps(const RealMatrixType &matrix)
const RealMatrixType GetMeanInOverlaps()
itk::LightObject Superclass
void SetMeanOfProductsInOverlaps(const RealMatrixType &matrix)
ValueType m_WeightOfStandardDeviationTerm
void SetStandardDeviationInOverlaps(const RealMatrixType &matrix)
ObjectiveFunctionType oft
std::vector< unsigned int > ListIndexType
RealMatrixType m_StandardDeviationInOverlaps
RealVectorType m_OutputCorrectionModel
RealMatrixType m_AreaInOverlaps
const RealMatrixType GetStandardDeviationInOverlaps()
vnl_matrix< ValueType > RealMatrixType
void Solve(const GCPsContainerType &gcpContainer, double &rmsError, Projection::RPCParam &outputParams)
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.