|
Isis 3.0 Object Programmers' Reference |
Home |
#include <AdaptiveGruen.h>
Inheritance diagram for Isis::AdaptiveGruen:


The AdaptiveGruen pattern/search chip registration algorithm is derived from the Gruen class. It is adaptive in that it uses an Affine transform to load the subsearch chip from the search chip. The Affine transform is iteratively minimized to converge on an cummulative affine solution that best matches the pattern chip.
For internal use only.
Definition at line 48 of file AdaptiveGruen.h.
Public Types | |
| Success | |
| Success. | |
| PatternChipNotEnoughValidData | |
| Not enough valid data in pattern chip. | |
| FitChipNoData | |
| Fit chip did not have any valid data. | |
| FitChipToleranceNotMet | |
| Goodness of fit tolerance not satisfied. | |
| SurfaceModelNotEnoughValidData | |
| Not enough points to fit a surface model for sub-pixel accuracy. | |
| SurfaceModelSolutionInvalid | |
| Could not model surface for sub-pixel accuracy. | |
| SurfaceModelDistanceInvalid | |
| Surface model moves registration more than one pixel. | |
| PatternZScoreNotMet | |
| Pattern data max or min does not pass the z-score test. | |
| SurfaceModelEccentricityRatioNotMet | |
| Ellipse eccentricity of the surface model not satisfied. | |
| AdaptiveAlgorithmFailed | |
| Error occured in Adaptive algorithm. | |
| enum | RegisterStatus { Success, PatternChipNotEnoughValidData, FitChipNoData, FitChipToleranceNotMet, SurfaceModelNotEnoughValidData, SurfaceModelSolutionInvalid, SurfaceModelDistanceInvalid, PatternZScoreNotMet, SurfaceModelEccentricityRatioNotMet, AdaptiveAlgorithmFailed } |
Public Member Functions | |
| AdaptiveGruen (Pvl &pvl) | |
| Construct a AdaptiveGruen search algorithm. | |
| virtual | ~AdaptiveGruen () |
| Destructor for AdaptiveGruen. | |
| virtual bool | IsAdaptive () |
| AdaptiveGruen is adaptive. | |
| double | Gain () const |
| Returns the radiometric gain value from the last solution. | |
| double | Shift () const |
| Returns the radiometric shift value from the last solution. | |
| void | SetRadiometrics (const double &gain=0.0, const double &shift=0.0) |
| Sets established radiometric parameters for registration processes. | |
| double | SpiceTolerance () const |
| Returns the SPICE tolerance constraint as read from config file. | |
| double | AffineTolerance () const |
| Returns the Affine tolerance constraint as read from config file. | |
| GruenResult | algorithm (Chip &pattern, Chip &subsearch) |
| Real workhorse of the computational Gruen algorithm. | |
| const GruenResult & | Results () const |
| Returns the results container from the last solution. | |
| bool | IsGood () const |
| Returns status of the last registration result. | |
| bool | IsGood (const GruenResult &result) const |
| Returns the status of the given Gruen result container. | |
| Chip * | PatternChip () |
| Return pointer to pattern chip. | |
| Chip * | SearchChip () |
| Return pointer to search chip. | |
| Chip * | FitChip () |
| Return pointer to search chip. | |
| Chip * | ReducedPatternChip () |
| Return pointer to reduced pattern chip. | |
| Chip * | ReducedSearchChip () |
| Return pointer to reduced search chip. | |
| Chip * | ReducedFitChip () |
| Return pointer to reduced fix chip. | |
| void | SetSubPixelAccuracy (bool on) |
| If the sub-accuracy is enable the Register() method will attempt to match the pattern chip to the search chip at sub-pixel accuracy, otherwise it will be registered at whole pixel accuracy. | |
| void | SetPatternValidPercent (const double percent) |
| Set the amount of data in the pattern chip that must be valid. | |
| void | SetTolerance (double tolerance) |
| Set the tolerance for an acceptable goodness of fit. | |
| void | SetSurfaceModelWindowSize (int size) |
| Set the surface model window size. | |
| void | SetSurfaceModelDistanceTolerance (double distance) |
| Set a distance the surface model solution is allow to move away from the best whole pixel fit in the fit chip. | |
| void | SetReductionFactor (int reductionFactor) |
| Set the reduction factor used to speed up the pattern matching algorithm. | |
| void | SetPatternZScoreMinimum (double minimum) |
| Set the minimum pattern zscore. | |
| void | SetSurfaceModelEccentricityRatio (double ratioTolerance) |
| A 1:1 ratio represents a perfect circle. | |
| double | PatternValidPercent () const |
| Return pattern valid percent. | |
| double | Tolerance () const |
| Return match algorithm tolerance. | |
| AutoReg::RegisterStatus | Register () |
| Walk the pattern chip through the search chip to find the best registration. | |
| double | GoodnessOfFit () const |
| Return the goodness of fit of the match algorithm. | |
| bool | IsIdeal (double fit) |
| double | ChipSample () const |
| Return the search chip sample that best matched. | |
| double | ChipLine () const |
| Return the search chip line that best matched. | |
| double | CubeSample () const |
| Return the search chip cube sample that best matched. | |
| double | CubeLine () const |
| Return the search chip cube line that best matched. | |
| void | ZScores (double &score1, double &score2) const |
| Return the ZScores of the pattern chip. | |
| Pvl | RegistrationStatistics () |
| This returns the cumulative registration statistics. | |
| PvlGroup | RegTemplate () |
| This function returns the keywords that this object was created from. | |
Protected Types | |
| typedef GSL::GSLUtility::GSLMatrix | GSLMatrix |
| typedef GSL::GSLUtility::GSLVector | GSLVector |
Protected Member Functions | |
| virtual std::string | AlgorithmName () const |
| Return name of Algorithm. | |
| bool | solve (GruenResult &result) |
| Computes solution and error analysis using Cholesky/Jacobi methods. | |
| virtual double | MatchAlgorithm (Chip &pattern, Chip &subsearch) |
| Minimization of data set using Gruen algorithm. | |
| virtual bool | CompareFits (double fit1, double fit2) |
| This virtual method must return if the 1st fit is equal to or better than the second fit. | |
| virtual double | IdealFit () const |
| Returns the ideal fit for a perfect Gruen result. | |
| virtual AutoReg::RegisterStatus | AdaptiveRegistration (Chip &sChip, Chip &pChip, Chip &fChip, int startSamp, int startLine, int endSamp, int endLine, int bestSamp, int bestLine) |
| Applies the adaptive Gruen algorithm to pattern and search chips. | |
| virtual Pvl | AlgorithmStatistics (Pvl &pvl) |
| Create Gruen error and processing statistics Pvl output. | |
| void | SetChipSample (double sample) |
| Sets the search chip subpixel sample that matches the pattern tack sample. | |
| void | SetChipLine (double line) |
| Sets the search chip subpixel line that matches the pattern tack line. | |
| void | SetGoodnessOfFit (double fit) |
| Sets the goodness of fit for adaptive algorithms. | |
| void | Parse (Pvl &pvl) |
| Initialize parameters in the AutoReg class using a PVL specification. | |
| bool | ModelSurface (std::vector< double > &x, std::vector< double > &y, std::vector< double > &z) |
| We will model a 2-d surface as:. | |
| Chip | Reduce (Chip &chip, int reductionFactor) |
| This method reduces the given chip by the given reduction factor. | |
Protected Attributes | |
| PvlObject | p_template |
| AutoRegistration object that created this projection. | |
enum Isis::AutoReg::RegisterStatus [inherited] |
| Isis::AdaptiveGruen::AdaptiveGruen | ( | Pvl & | pvl | ) | [inline] |
Construct a AdaptiveGruen search algorithm.
This will construct an AdaptiveGruen search algorithm. It is recommended that you use a AutoRegFactory class as opposed to this constructor
| pvl | A Pvl object that contains a valid automatic registration definition |
Definition at line 60 of file AdaptiveGruen.h.
| virtual Isis::AdaptiveGruen::~AdaptiveGruen | ( | ) | [inline, virtual] |
| AutoReg::RegisterStatus Isis::Gruen::AdaptiveRegistration | ( | Chip & | sChip, | |
| Chip & | pChip, | |||
| Chip & | fChip, | |||
| int | startSamp, | |||
| int | startLine, | |||
| int | endSamp, | |||
| int | endLine, | |||
| int | bestSamp, | |||
| int | bestLine | |||
| ) | [protected, virtual, inherited] |
Applies the adaptive Gruen algorithm to pattern and search chips.
This method computes the adaptive Gruen algorithm for a pattern chip and search chip. The search chip is assumed to be of a larger size than the pattern chip as dictated by the contents of the registration definition file.
This algorithm can be used with or without "fast geoming" the search chip. It works quite well where the two images are assumed to be nearly spatially registered. Its real intent is to compute parallax angles between two images taken at different viewing geometry. This provides an efficient process for deriving a digital elevation model (DEM) from two datasets.
The Gruen algorithm is applied to the chips until the algorithm converges (current iteration yields a detla affine within tolerance limits), an error is encountered, or the maximum number of iterations is exceeded.
Note that bestSamp and bestLine may not be the original center of the search chip. It is subject to chip reduction matching as specified by the user. All distance tolerances are compute from this postion. The process of chip reduction processing is handled by AutoReg prior to calling this routine.
| sChip | Full search chip as rendered from the search image | |
| pChip | Full pattern chip as rendered from the pattern/match image | |
| fChip | Maintains the solution vector at each chip location | |
| startSamp | Starting sample of the search image range | |
| startLine | Starting line of the search image range | |
| endSamp | Ending sample of the search image range | |
| endLine | Ending line of the search image range | |
| bestSamp | Best registering sample of search chip | |
| bestLine | best registering line of search chip |
Reimplemented from Isis::AutoReg.
Definition at line 359 of file Gruen.cpp.
References Isis::Gruen::_fitChipScale, Isis::Gruen::_maxIters, Isis::Gruen::_nIters, Isis::Gruen::_result, Isis::Gruen::algorithm(), Isis::GruenResult::Alpha(), Isis::Gruen::CheckAffineTolerance(), Isis::Chip::ChipLine(), Isis::Chip::ChipSample(), Isis::iException::Clear(), Isis::GruenResult::Constraints(), Isis::Chip::CubeLine(), Isis::Chip::CubeSample(), Isis::GruenResult::Eigen(), Isis::Gruen::ErrorAnalysis(), Isis::Chip::Extract(), Isis::GruenResult::gerrmsg, Isis::GruenResult::gerrno, Isis::Gruen::getThreshHold(), Isis::Chip::getTransform(), Isis::Gruen::HasConverged(), Isis::GruenResult::isGood, Isis::GruenResult::IsGood(), Isis::Chip::IsInsideChip(), Isis::Chip::Lines(), Isis::Gruen::logError(), Isis::Null, Isis::Gruen::reset(), Isis::Chip::Samples(), Isis::Affine::Scale(), Isis::Chip::SetAllValues(), Isis::AutoReg::SetChipLine(), Isis::Chip::SetChipPosition(), Isis::AutoReg::SetChipSample(), Isis::GruenResult::setChipTransform(), Isis::Chip::SetCubePosition(), Isis::GruenResult::setFinalImage(), Isis::AutoReg::SetGoodnessOfFit(), Isis::Chip::SetSize(), Isis::GruenResult::setStartImage(), Isis::Chip::setTransform(), Isis::Chip::SetValue(), ss, Isis::Gruen::Status(), Isis::Chip::TackLine(), Isis::Chip::TackSample(), Isis::Gruen::TestConstraints(), Isis::Affine::Translate(), Isis::Gruen::UpdateAffine(), Isis::Gruen::UpdateChip(), and Isis::Chip::Write().
| double Isis::Gruen::AffineTolerance | ( | ) | const [inline, inherited] |
Returns the Affine tolerance constraint as read from config file.
Definition at line 116 of file Gruen.h.
References Isis::Gruen::_affineTol.
Referenced by Isis::Gruen::CheckAffineTolerance().
| GruenResult Isis::Gruen::algorithm | ( | Chip & | pattern, | |
| Chip & | subsearch | |||
| ) | [inherited] |
Real workhorse of the computational Gruen algorithm.
This method is called for all registration requests and actually performs the registration of two chips.
The pattern chip is deemed constant. The subsearch chip is generally an extraction from the search chip that has had an affine transform applied to fill it.
At each iteration of the Gruen algorithm, the affine transform is incrementally updated based upon the results from this method. There are six affine parameters and two radiometric (shift and gain) parameters that are solved/computed here.
The algorithm itself is a first derivative computation of the subsearch chip with small radiometric adjustments applied to better tone match the two chips. This is intended to minimize the affine variability.
| pattern | Fixed pattern chip which subsearch is trying to match | |
| subsearch | Affined extraction of the search chip |
Definition at line 101 of file Gruen.cpp.
References Isis::Gruen::_nIters, Isis::Gruen::_totalIterations, a, Isis::GruenResult::ata, Isis::GruenResult::atl, Isis::Gruen::Gain(), Isis::GruenResult::gerrmsg, Isis::GruenResult::gerrno, Isis::Chip::GetValue(), Isis::GruenResult::isGood, Isis::Chip::IsValid(), line, Isis::Chip::Lines(), Isis::Gruen::logError(), Isis::Gruen::MinValidPoints(), Isis::GruenResult::nIters, Isis::GruenResult::npts, Isis::GruenResult::resid, Isis::Chip::Samples(), Isis::Gruen::Shift(), Isis::Gruen::solve(), Isis::Chip::TackLine(), Isis::Chip::TackSample(), and Isis::Gruen::ValidPoints().
Referenced by Isis::Gruen::AdaptiveRegistration(), and Isis::Gruen::MatchAlgorithm().
| virtual std::string Isis::AdaptiveGruen::AlgorithmName | ( | ) | const [inline, protected, virtual] |
Return name of Algorithm.
Reimplemented from Isis::Gruen.
Definition at line 72 of file AdaptiveGruen.h.
Create Gruen error and processing statistics Pvl output.
This method generates two groups specific to the Gruen algorithm: The GruenFailures group which logs all the errors enountered during processing and the GruenStatistics group which logs selected statistics gathered during a registration run.
These groups are added to the AutoReg log output Pvl container for reporting to user/log files.
Reimplemented from Isis::AutoReg.
Definition at line 479 of file Gruen.cpp.
References Isis::Gruen::_errors, Isis::Gruen::_unclassified, Isis::Gruen::AlgorithmName(), e, Isis::CollectorMap< K, T, ComparePolicy, RemovalPolicy, CopyPolicy >::getNth(), Isis::Gruen::IsAdaptive(), Isis::Gruen::ParameterLog(), pvl(), Isis::CollectorMap< K, T, ComparePolicy, RemovalPolicy, CopyPolicy >::size(), and Isis::Gruen::StatsLog().
| double Isis::AutoReg::ChipLine | ( | ) | const [inline, inherited] |
Return the search chip line that best matched.
Definition at line 183 of file AutoReg.h.
References Isis::AutoReg::p_chipLine.
| double Isis::AutoReg::ChipSample | ( | ) | const [inline, inherited] |
Return the search chip sample that best matched.
Definition at line 180 of file AutoReg.h.
References Isis::AutoReg::p_chipSample.
| bool Isis::Gruen::CompareFits | ( | double | fit1, | |
| double | fit2 | |||
| ) | [protected, virtual, inherited] |
This virtual method must return if the 1st fit is equal to or better than the second fit.
| fit1 | 1st goodness of fit | |
| fit2 | 2nd goodness of fit |
Reimplemented from Isis::AutoReg.
| double Isis::AutoReg::CubeLine | ( | ) | const [inline, inherited] |
Return the search chip cube line that best matched.
Definition at line 189 of file AutoReg.h.
References Isis::AutoReg::p_cubeLine.
Referenced by Qisis::ControlPointEdit::registerPoint().
| double Isis::AutoReg::CubeSample | ( | ) | const [inline, inherited] |
Return the search chip cube sample that best matched.
Definition at line 186 of file AutoReg.h.
References Isis::AutoReg::p_cubeSample.
Referenced by Qisis::ControlPointEdit::registerPoint().
| Chip* Isis::AutoReg::FitChip | ( | ) | [inline, inherited] |
Return pointer to search chip.
Definition at line 146 of file AutoReg.h.
References Isis::AutoReg::p_fitChip.
Referenced by Qisis::ControlPointEdit::saveChips().
| double Isis::Gruen::Gain | ( | ) | const [inline, inherited] |
Returns the radiometric gain value from the last solution.
Definition at line 106 of file Gruen.h.
References Isis::Gruen::_result, and Isis::GruenResult::Gain().
Referenced by Isis::Gruen::algorithm().
| double Isis::AutoReg::GoodnessOfFit | ( | ) | const [inline, inherited] |
Return the goodness of fit of the match algorithm.
Definition at line 175 of file AutoReg.h.
References Isis::AutoReg::p_goodnessOfFit.
Referenced by Qisis::ControlPointEdit::registerPoint().
| virtual double Isis::Gruen::IdealFit | ( | ) | const [inline, protected, virtual, inherited] |
| virtual bool Isis::AdaptiveGruen::IsAdaptive | ( | ) | [inline, virtual] |
AdaptiveGruen is adaptive.
Reimplemented from Isis::Gruen.
Definition at line 68 of file AdaptiveGruen.h.
| bool Isis::Gruen::IsGood | ( | const GruenResult & | result | ) | const [inline, inherited] |
Returns the status of the given Gruen result container.
Definition at line 125 of file Gruen.h.
References Isis::GruenResult::IsGood().
| bool Isis::Gruen::IsGood | ( | ) | const [inline, inherited] |
Returns status of the last registration result.
Definition at line 123 of file Gruen.h.
References Isis::Gruen::_result.
Referenced by Isis::Gruen::MatchAlgorithm().
| double Isis::Gruen::MatchAlgorithm | ( | Chip & | pattern, | |
| Chip & | subsearch | |||
| ) | [protected, virtual, inherited] |
Minimization of data set using Gruen algorithm.
This is a very minimal application of the Gruen algorithm that provides the ability to use it in a non-adaptive capacity. This method processes two chips of the same size, pattern and subsearch. The subsearch has typically been extracted in the same manner as the MinimumDifference or MaximumCorrelation routines are utilized.
It simply applies the algorithm to the current state of the two chips, computes the error analysis on it and returns the eigen vector solution as an indication of chip registration integrity.
Note that in this mode, most all the parameters found in the definition file that apply to the adaptive mode are ignored when utilizing the algorithm in this fashion.
| pattern | [in] A Chip object usually containing an nxm area of a cube. Must be the same diminsions as subsearch. | |
| subsearch | [in] A Chip object usually containing an nxm area of a cube. Must be the same diminsions as pattern. This is normally a subarea of a larger portion of the image. |
Implements Isis::AutoReg.
Definition at line 299 of file Gruen.cpp.
References Isis::Gruen::_result, Isis::Gruen::algorithm(), Isis::GruenResult::Eigen(), Isis::Gruen::IsGood(), Isis::Null, Isis::Gruen::reset(), and Isis::GruenResult::update().
| bool Isis::AutoReg::ModelSurface | ( | std::vector< double > & | x, | |
| std::vector< double > & | y, | |||
| std::vector< double > & | z | |||
| ) | [protected, inherited] |
We will model a 2-d surface as:.
z = a + b*x + c*y + d*x**2 + e*x*y + f*y**2
Then the partial derivatives are two lines:
dz/dx = b + 2dx + ey dz/dy = c + ex + 2fy
We will have a local min/max where dz/dx and dz/dy = 0. Solve using that condition using linear algebra yields:
xlocal = (ce - 2bf) / (4df - ee) ylocal = (be - 2cd) / (4df - ee)
These will be stored in p_chipSample and p_chipLine respectively.
| x | vector of x (sample) values | |
| y | vector of y (line) values | |
| z | vector of z (goodness-of-fit) values |
Definition at line 745 of file AutoReg.cpp.
References a, Isis::LeastSquares::AddKnown(), b, c, Isis::BasisFunction::Coefficient(), d, delta, Isis::Matrix::Determinant(), e, Isis::LeastSquares::Evaluate(), Isis::AutoReg::p_chipLine, Isis::AutoReg::p_chipSample, Isis::AutoReg::p_goodnessOfFit, Isis::AutoReg::p_status, Isis::AutoReg::p_surfaceModelEccentricity, Isis::AutoReg::p_SurfaceModelEccentricityRatioNotMet, Isis::AutoReg::p_surfaceModelEccentricityTolerance, Isis::AutoReg::p_SurfaceModelSolutionInvalid, Isis::LeastSquares::Solve(), Isis::AutoReg::SurfaceModelEccentricityRatioNotMet, and Isis::AutoReg::SurfaceModelSolutionInvalid.
Referenced by Isis::AutoReg::Register().
| void Isis::AutoReg::Parse | ( | Pvl & | pvl | ) | [protected, inherited] |
Initialize parameters in the AutoReg class using a PVL specification.
An example of the PVL required for this is:
Object = AutoRegistration
Group = Algorithm
Name = MaximumCorrelation
Tolerance = 0.7
EndGroup
Group = PatternChip
Samples = 21
Lines = 21
EndGroup
Group = SearchChip
Samples = 51
Lines = 51
EndGroup
EndObject
There are many other options that can be set via the pvl and are described in other documentation (see below).
| pvl | The pvl object containing the specification |
Definition at line 136 of file AutoReg.cpp.
References _FILEINFO_, e, Isis::PvlContainer::Filename(), Isis::PvlObject::FindGroup(), Isis::PvlObject::HasGroup(), Isis::PvlContainer::HasKeyword(), maximum, Isis::iException::Message(), minimum, Isis::AutoReg::PatternChip(), pvl(), Isis::AutoReg::SearchChip(), Isis::AutoReg::SetPatternValidPercent(), Isis::AutoReg::SetPatternZScoreMinimum(), Isis::AutoReg::SetReductionFactor(), Isis::Chip::SetSize(), Isis::AutoReg::SetSubPixelAccuracy(), Isis::AutoReg::SetSurfaceModelDistanceTolerance(), Isis::AutoReg::SetSurfaceModelEccentricityRatio(), Isis::AutoReg::SetSurfaceModelWindowSize(), Isis::AutoReg::SetTolerance(), Isis::Chip::SetValidRange(), Isis::PvlObject::Traverse, Isis::ValidMaximum, and Isis::ValidMinimum.
Referenced by Isis::AutoReg::AutoReg().
| Chip* Isis::AutoReg::PatternChip | ( | ) | [inline, inherited] |
Return pointer to pattern chip.
Definition at line 140 of file AutoReg.h.
References Isis::AutoReg::p_patternChip.
Referenced by Isis::AutoReg::Parse(), Qisis::ControlPointEdit::registerPoint(), and Qisis::ControlPointEdit::saveChips().
| double Isis::AutoReg::PatternValidPercent | ( | ) | const [inline, inherited] |
Return pattern valid percent.
Definition at line 167 of file AutoReg.h.
References Isis::AutoReg::p_patternValidPercent.
Referenced by Isis::Gruen::MinValidPoints().
This method reduces the given chip by the given reduction factor.
Used to speed up the match algorithm.
| reductionFactor |
Definition at line 348 of file AutoReg.cpp.
References Isis::Statistics::AddData(), Isis::Statistics::Average(), Isis::Chip::GetValue(), line, Isis::Chip::Lines(), Isis::Null, Isis::Statistics::Reset(), sample, Isis::Chip::Samples(), Isis::Chip::SetValue(), and stats.
Referenced by Isis::AutoReg::Register().
| Chip* Isis::AutoReg::ReducedFitChip | ( | ) | [inline, inherited] |
Return pointer to reduced fix chip.
Definition at line 155 of file AutoReg.h.
References Isis::AutoReg::p_reducedFitChip.
| Chip* Isis::AutoReg::ReducedPatternChip | ( | ) | [inline, inherited] |
Return pointer to reduced pattern chip.
Definition at line 149 of file AutoReg.h.
References Isis::AutoReg::p_reducedPatternChip.
| Chip* Isis::AutoReg::ReducedSearchChip | ( | ) | [inline, inherited] |
Return pointer to reduced search chip.
Definition at line 152 of file AutoReg.h.
References Isis::AutoReg::p_reducedSearchChip.
| AutoReg::RegisterStatus Isis::AutoReg::Register | ( | ) | [inherited] |
Walk the pattern chip through the search chip to find the best registration.
Definition at line 392 of file AutoReg.cpp.
References _FILEINFO_, Isis::AutoReg::AdaptiveRegistration(), Isis::AutoReg::CompareFits(), Isis::AutoReg::ComputeChipZScore(), Isis::Chip::CubeLine(), Isis::Chip::CubeSample(), Isis::AutoReg::FitChipNoData, Isis::AutoReg::FitChipToleranceNotMet, Isis::Chip::GetValue(), Isis::AutoReg::Init(), Isis::AutoReg::IsAdaptive(), Isis::AutoReg::IsIdeal(), Isis::Chip::IsValid(), line, Isis::Chip::Lines(), Isis::AutoReg::Match(), Isis::iException::Message(), Isis::AutoReg::ModelSurface(), Isis::Null, Isis::AutoReg::p_bestFit, Isis::AutoReg::p_bestLine, Isis::AutoReg::p_bestSamp, Isis::AutoReg::p_chipLine, Isis::AutoReg::p_chipSample, Isis::AutoReg::p_cubeLine, Isis::AutoReg::p_cubeSample, Isis::AutoReg::p_distanceTolerance, Isis::AutoReg::p_fitChip, Isis::AutoReg::p_FitChipNoData, Isis::AutoReg::p_FitChipToleranceNotMet, Isis::AutoReg::p_goodnessOfFit, Isis::AutoReg::p_patternChip, Isis::AutoReg::p_PatternChipNotEnoughValidData, Isis::AutoReg::p_patternValidPercent, Isis::AutoReg::p_PatternZScoreNotMet, Isis::AutoReg::p_reducedFitChip, Isis::AutoReg::p_reducedPatternChip, Isis::AutoReg::p_reducedSearchChip, Isis::AutoReg::p_reduceFactor, Isis::AutoReg::p_searchChip, Isis::AutoReg::p_status, Isis::AutoReg::p_subpixelAccuracy, Isis::AutoReg::p_Success, Isis::AutoReg::p_SurfaceModelDistanceInvalid, Isis::AutoReg::p_SurfaceModelNotEnoughValidData, Isis::AutoReg::p_Total, Isis::AutoReg::p_windowSize, Isis::AutoReg::PatternChipNotEnoughValidData, Isis::AutoReg::PatternZScoreNotMet, Isis::AutoReg::Reduce(), Isis::Chip::Samples(), Isis::Chip::SetChipPosition(), Isis::Chip::SetSize(), Isis::Chip::SetValue(), sl, ss, Isis::AutoReg::Success, Isis::AutoReg::SurfaceModelDistanceInvalid, Isis::AutoReg::SurfaceModelNotEnoughValidData, Isis::Chip::TackLine(), Isis::Chip::TackSample(), and Isis::AutoReg::Tolerance().
Referenced by Qisis::ControlPointEdit::registerPoint().
| Pvl Isis::AutoReg::RegistrationStatistics | ( | ) | [inherited] |
This returns the cumulative registration statistics.
That is, the Register() method accumulates statistics regard the errors each time is called. Invoking this method returns a PVL summary of those statisitics
Definition at line 920 of file AutoReg.cpp.
References Isis::AutoReg::AlgorithmStatistics(), Isis::AutoReg::p_FitChipNoData, Isis::AutoReg::p_FitChipToleranceNotMet, Isis::AutoReg::p_PatternChipNotEnoughValidData, Isis::AutoReg::p_PatternZScoreNotMet, Isis::AutoReg::p_Success, Isis::AutoReg::p_SurfaceModelDistanceInvalid, Isis::AutoReg::p_SurfaceModelEccentricityRatioNotMet, Isis::AutoReg::p_SurfaceModelNotEnoughValidData, Isis::AutoReg::p_SurfaceModelSolutionInvalid, Isis::AutoReg::p_Total, pvl(), and stats.
| PvlGroup Isis::AutoReg::RegTemplate | ( | ) | [inherited] |
This function returns the keywords that this object was created from.
Definition at line 1002 of file AutoReg.cpp.
References Isis::PvlObject::FindGroup(), Isis::PvlObject::HasGroup(), Isis::PvlContainer::HasKeyword(), Isis::AutoReg::p_template, Isis::AutoReg::SetPatternValidPercent(), and Isis::PvlObject::Traverse.
| const GruenResult& Isis::Gruen::Results | ( | ) | const [inline, inherited] |
Returns the results container from the last solution.
Definition at line 120 of file Gruen.h.
References Isis::Gruen::_result.
| Chip* Isis::AutoReg::SearchChip | ( | ) | [inline, inherited] |
Return pointer to search chip.
Definition at line 143 of file AutoReg.h.
References Isis::AutoReg::p_searchChip.
Referenced by Isis::AutoReg::Parse(), Qisis::ControlPointEdit::registerPoint(), and Qisis::ControlPointEdit::saveChips().
| void Isis::AutoReg::SetChipLine | ( | double | line | ) | [inline, protected, inherited] |
Sets the search chip subpixel line that matches the pattern tack line.
| line |
Definition at line 237 of file AutoReg.h.
References Isis::AutoReg::p_chipLine.
Referenced by Isis::Gruen::AdaptiveRegistration().
| void Isis::AutoReg::SetChipSample | ( | double | sample | ) | [inline, protected, inherited] |
Sets the search chip subpixel sample that matches the pattern tack sample.
| sample |
Definition at line 228 of file AutoReg.h.
References Isis::AutoReg::p_chipSample.
Referenced by Isis::Gruen::AdaptiveRegistration().
| void Isis::AutoReg::SetGoodnessOfFit | ( | double | fit | ) | [inline, protected, inherited] |
Sets the goodness of fit for adaptive algorithms.
| Fit | Fit value to set |
Definition at line 244 of file AutoReg.h.
References Isis::AutoReg::p_bestFit.
Referenced by Isis::Gruen::AdaptiveRegistration().
| void Isis::AutoReg::SetPatternValidPercent | ( | const double | percent | ) | [inherited] |
Set the amount of data in the pattern chip that must be valid.
For example, a 21x21 pattern chip has 441 pixels. If percent is 75 then at least 330 pixels pairs must be valid in order for a comparision between the pattern and search sub-region to occur. That is, both the pattern pixel and search pixel must be valid to be counted. Pixels are considered valid based on the min/max range specified on each of the Chips (see Chip::SetValidRange method).
If the pattern chip reduction option is used this percentage will apply to all reduced patterns. Additionally, the pattern sampling effects the pixel count. For example if pattern sampling is 50% then only 220 pixels in the 21x21 pattern are considered so 165 must be valid.
| percent | Percentage of valid data between 0 and 100, default is 50% if never invoked |
Definition at line 234 of file AutoReg.cpp.
References _FILEINFO_, Isis::iException::Message(), and Isis::AutoReg::p_patternValidPercent.
Referenced by Isis::AutoReg::AutoReg(), Isis::AutoReg::Parse(), and Isis::AutoReg::RegTemplate().
| void Isis::AutoReg::SetPatternZScoreMinimum | ( | double | minimum | ) | [inherited] |
Set the minimum pattern zscore.
This option is used to ignore pattern chips which are bland (low standard deviation). If the minimum or maximum pixel value in the pattern chip does not meet the minimum zscore value (see a statisitcs book for definition of zscore) then invalid registration will occur.
| minimum | The minimum zscore value for the pattern chip. Default is 1.0 |
Definition at line 255 of file AutoReg.cpp.
References _FILEINFO_, Isis::iException::Message(), and Isis::AutoReg::p_minimumPatternZScore.
Referenced by Isis::AutoReg::AutoReg(), and Isis::AutoReg::Parse().
| void Isis::Gruen::SetRadiometrics | ( | const double & | gain = 0.0, |
|
| const double & | shift = 0.0 | |||
| ) | [inherited] |
Sets established radiometric parameters for registration processes.
This method provides a mechanism for establishing predetermined values for registration activities. This is intended to be used for the DEM generation processing where points are grown around seed points. This is intended to lead to rapid convergence of points surrounding established seed points.
This should be used in conjuction with the resulting Affine transform as determined from the seed point.
Note that once this is established, it remains constant for all subsequent registration processes. To reset the default, all this method with no arguments.
Also note that these defaults can be established in the input AutoReg definition file.
These values are set when reset() is called - typically at the start of any adaptive application of the Gruen algorithm.
| gain | Precomputed radiometric gain value to use as default | |
| shift | Precomputed radiometric shift value to use as default |
Definition at line 70 of file Gruen.cpp.
References Isis::Gruen::_defGain, and Isis::Gruen::_defShift.
Referenced by Isis::Gruen::init().
| void Isis::AutoReg::SetReductionFactor | ( | int | factor | ) | [inherited] |
Set the reduction factor used to speed up the pattern matching algorithm.
| factor |
Definition at line 331 of file AutoReg.cpp.
References _FILEINFO_, Isis::iException::Message(), and Isis::AutoReg::p_reduceFactor.
Referenced by Isis::AutoReg::AutoReg(), and Isis::AutoReg::Parse().
| void Isis::AutoReg::SetSubPixelAccuracy | ( | bool | on | ) | [inherited] |
If the sub-accuracy is enable the Register() method will attempt to match the pattern chip to the search chip at sub-pixel accuracy, otherwise it will be registered at whole pixel accuracy.
| on | Set the state of registration accuracy. The default is sub-pixel accuracy is on |
Definition at line 212 of file AutoReg.cpp.
References Isis::AutoReg::p_subpixelAccuracy.
Referenced by Isis::AutoReg::AutoReg(), and Isis::AutoReg::Parse().
| void Isis::AutoReg::SetSurfaceModelDistanceTolerance | ( | double | distance | ) | [inherited] |
Set a distance the surface model solution is allow to move away from the best whole pixel fit in the fit chip.
| distance | The distance allowed to move in pixels. Must be greater than zero. |
Definition at line 316 of file AutoReg.cpp.
References _FILEINFO_, Isis::iException::Message(), and Isis::AutoReg::p_distanceTolerance.
Referenced by Isis::AutoReg::AutoReg(), and Isis::AutoReg::Parse().
| void Isis::AutoReg::SetSurfaceModelEccentricityRatio | ( | double | eccentricityRatio | ) | [inherited] |
A 1:1 ratio represents a perfect circle.
Allowing the user to set this ratio lets them determine which points to throw out if the surface model gets too elliptical.
| eccentricityRatio |
Definition at line 300 of file AutoReg.cpp.
References _FILEINFO_, Isis::iException::Message(), and Isis::AutoReg::p_surfaceModelEccentricityTolerance.
Referenced by Isis::AutoReg::AutoReg(), and Isis::AutoReg::Parse().
| void Isis::AutoReg::SetSurfaceModelWindowSize | ( | int | size | ) | [inherited] |
Set the surface model window size.
The pixels in this window will be used to fit a surface model in order to compute sub-pixel accuracy. In some cases the default (3x3) and produces erroneous sub-pixel accuracy values.
| size | The size of the window must be three or greater and odd. |
Definition at line 284 of file AutoReg.cpp.
References _FILEINFO_, Isis::iException::Message(), and Isis::AutoReg::p_windowSize.
Referenced by Isis::AutoReg::AutoReg(), and Isis::AutoReg::Parse().
| void Isis::AutoReg::SetTolerance | ( | double | tolerance | ) | [inherited] |
Set the tolerance for an acceptable goodness of fit.
| tolerance | This tolerance is used to test against the goodness of fit returned by the MatchAlgorith method after a surface model has been fit. See TestGoodnessOfFit |
Definition at line 271 of file AutoReg.cpp.
References Isis::AutoReg::p_tolerance.
Referenced by Isis::AutoReg::AutoReg(), and Isis::AutoReg::Parse().
| double Isis::Gruen::Shift | ( | ) | const [inline, inherited] |
Returns the radiometric shift value from the last solution.
Definition at line 108 of file Gruen.h.
References Isis::Gruen::_result, and Isis::GruenResult::Shift().
Referenced by Isis::Gruen::algorithm().
| bool Isis::Gruen::solve | ( | GruenResult & | result | ) | [protected, inherited] |
Computes solution and error analysis using Cholesky/Jacobi methods.
This method computes the affine and radiometric parameter solution and associated errors/uncertainty from the algorithm() processing.
The affine parameters are solved using Cholesky decomposition. Error analysis is computed using Jacobian eigenvector methods. The GNU Scientific Library (GSL) is used to apply these routines.
See http://www.gnu.org/software/gsl/ for additional details on the GNU Scientific Library.
| result | Input parameters provided to compute solution. This container is also updated by this method with the solution and error analysis. |
Definition at line 203 of file Gruen.cpp.
References Isis::GruenResult::alpha, Isis::GruenResult::ata, Isis::GruenResult::atl, c, Isis::GSL::GSLUtility::check(), Isis::iException::Clear(), Isis::GSL::GSLUtility::Columns(), Isis::GruenResult::eigen, Isis::iException::Errors(), Isis::GSL::GSLUtility::free(), Isis::GruenResult::gerrmsg, Isis::GruenResult::gerrno, Isis::GSL::GSLUtility::getInstance(), Isis::GSL::GSLUtility::GSLTogsl(), Isis::GSL::GSLUtility::identity(), Isis::GruenResult::isGood, Isis::GruenResult::kmat, Isis::Gruen::logError(), Isis::GSL::GSLUtility::Rows(), Isis::GruenResult::skmat, Isis::GruenResult::Variance(), and x.
Referenced by Isis::Gruen::algorithm().
| double Isis::Gruen::SpiceTolerance | ( | ) | const [inline, inherited] |
Returns the SPICE tolerance constraint as read from config file.
Definition at line 113 of file Gruen.h.
References Isis::Gruen::_spiceTol.
| double Isis::AutoReg::Tolerance | ( | ) | const [inline, inherited] |
Return match algorithm tolerance.
Definition at line 170 of file AutoReg.h.
References Isis::AutoReg::p_tolerance.
Referenced by Isis::AutoReg::Register(), and Isis::Gruen::TestConstraints().
| void Isis::AutoReg::ZScores | ( | double & | score1, | |
| double & | score2 | |||
| ) | const [inline, inherited] |
Return the ZScores of the pattern chip.
| score1 | First Z Score | |
| score2 | Second Z Score |
Definition at line 197 of file AutoReg.h.
References Isis::AutoReg::p_ZScore1, and Isis::AutoReg::p_ZScore2.
PvlObject Isis::AutoReg::p_template [protected, inherited] |
AutoRegistration object that created this projection.
Definition at line 284 of file AutoReg.h.
Referenced by Isis::AutoReg::AutoReg(), and Isis::AutoReg::RegTemplate().