1#ifndef OverlapNormalization_h 
    2#define OverlapNormalization_h 
   94                           const Statistics &area2, 
const unsigned index2,
 
  104        m_idHoldList.push_back(holdIndex);
 
  141      double Average(
const unsigned index) 
const;
 
  142      double Gain(
const unsigned index) 
const;
 
  143      double Offset(
const unsigned index) 
const;
 
  145      double Evaluate(
double dn, 
unsigned index) 
const;
 
  152      std::vector<Statistics *> m_statsList;
 
  158      std::vector<int> m_idHoldList;
 
  198      std::vector<Overlap> m_overlapList;
 
  204      std::vector<double> m_deltas;
 
  209      std::vector<double> m_weights;
 
  226      std::vector<double> m_gains;
 
  231      std::vector<double> m_offsets;
 
  237      BasisFunction *m_gainFunction;
 
  242      BasisFunction *m_offsetFunction;
 
  247      LeastSquares *m_gainLsq;
 
  252      LeastSquares *m_offsetLsq;
 
  255      OverlapNormalization &operator=(
const OverlapNormalization &);
 
  258      OverlapNormalization(
const OverlapNormalization &);
 
Functor for reduce using average functionality.
Definition: Reduce.h:107
 
SolveMethod
Definition: LeastSquares.h:112
 
@ QRD
QR Decomposition.
Definition: LeastSquares.h:113
 
Calculate the bases and multipliers for normalizing overlapping "data sets" (e.g.,...
Definition: OverlapNormalization.h:61
 
double Offset(const unsigned index) const
Returns the calculated offset (base) for the given data set.
Definition: OverlapNormalization.cpp:335
 
void AddHold(unsigned holdIndex)
Sets the list of files to be held during the solving process.
Definition: OverlapNormalization.h:103
 
virtual ~OverlapNormalization()
Destroys the OverlapNormalization object, frees up pointers.
Definition: OverlapNormalization.cpp:56
 
AddStatus AddOverlap(const Statistics &area1, const unsigned index1, const Statistics &area2, const unsigned index2, double weight=1.0)
Attempts to add the given overlap data to a collection of valid overlaps, and returns the success or ...
Definition: OverlapNormalization.cpp:90
 
SolutionType
Enumeration for whether user/programmer wants to calculate new gains, offsets, or both when solving.
Definition: OverlapNormalization.h:111
 
@ Offsets
Calculate only the offsets.
Definition: OverlapNormalization.h:121
 
@ Both
Calculate both gains and offsets.
Definition: OverlapNormalization.h:126
 
@ Gains
Calculate only the gains.
Definition: OverlapNormalization.h:116
 
@ GainsWithoutNormalization
The equation being solved for Gains, Offsets, and Both is output = (input - average) * gain + offset ...
Definition: OverlapNormalization.h:135
 
AddStatus
The result of the attempt to add overlap data to the list of valid overlaps, where Success is a succe...
Definition: OverlapNormalization.h:75
 
@ NoOverlap
Data sets do not overlap one another.
Definition: OverlapNormalization.h:85
 
@ Success
Overlap is valid and was added successfully.
Definition: OverlapNormalization.h:80
 
@ NoContrast
One or both areas contain no valid average.
Definition: OverlapNormalization.h:90
 
double Evaluate(double dn, unsigned index) const
Returns a new DN from an old using the calculated gains and offsets of the data set the pixel belongs...
Definition: OverlapNormalization.cpp:358
 
double Gain(const unsigned index) const
Returns the calculated gain (multiplier) for the given data set.
Definition: OverlapNormalization.cpp:314
 
void Solve(SolutionType type=Both, LeastSquares::SolveMethod method=LeastSquares::QRD)
Attempts to solve the least squares equation for all data sets.
Definition: OverlapNormalization.cpp:147
 
This class is used to accumulate statistics on double arrays.
Definition: Statistics.h:94
 
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16