USGS

Isis 3.0 Object Programmers' Reference

Home

Isis::MinimumDifference Class Reference
[Pattern Matching]

#include <MinimumDifference.h>

Inheritance diagram for Isis::MinimumDifference:

Inheritance graph
[legend]
Collaboration diagram for Isis::MinimumDifference:

Collaboration graph
[legend]
List of all members.

Detailed Description

Minimum difference pattern matching.

This class is used to construct a minimum difference pattern matching algorith. That is, given a search chip and a pattern chip, the pattern chip is walked through the search chip. At each position the a sub-search chip is extracted which is the same size as the pattern chip. Then the absolute value of the difference is computed at each matching pixel in the pattern and sub-search chip. These differences are then summed to produce the goodness of fit. The sub-search chip with the lowest goodness of fit will be identified as the pattern match (if a tolerance is met). The best fit = 0 which means the pattern chip and sub-search chip are identical

See also:
MinimumDifference AutoReg
Author:
2005-05-05 Jeff Anderson

For internal use only.

History:
2006-01-11 Jacob Danton Added idealFit value, unitTest
History:
2006-03-08 Jacob DAnton Added sampling options
History:
2006-03-20 Jacob Danton Changed to *average* minimum difference algorithm.

Definition at line 57 of file MinimumDifference.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

 MinimumDifference (Pvl &pvl)
 Construct a MinimumDifference search algorithm.
virtual ~MinimumDifference ()
 Destructor.
ChipPatternChip ()
 Return pointer to pattern chip.
ChipSearchChip ()
 Return pointer to search chip.
ChipFitChip ()
 Return pointer to search chip.
ChipReducedPatternChip ()
 Return pointer to reduced pattern chip.
ChipReducedSearchChip ()
 Return pointer to reduced search chip.
ChipReducedFitChip ()
 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.
virtual bool IsAdaptive ()
 Return if the algorithm is an adaptive pattern matching technique.
PvlGroup RegTemplate ()
 This function returns the keywords that this object was created from.

Protected Member Functions

virtual double MatchAlgorithm (Chip &pattern, Chip &subsearch)
 Minimum difference match 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 (perfect) fit that could be returned by the MatchAlgorithm.
virtual std::string AlgorithmName () const
 Returns the name of the algorithm.
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.
virtual AutoReg::RegisterStatus AdaptiveRegistration (Chip &sChip, Chip &pChip, Chip &fChip, int startSamp, int startLine, int endSamp, int endLine, int bestSamp, int bestLine)
 This virtual method must be written for adaptive pattern matching 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.
virtual Pvl AlgorithmStatistics (Pvl &pvl)
 Provide (adaptive) algorithms a chance to report results.

Protected Attributes

PvlObject p_template
 AutoRegistration object that created this projection.


Member Enumeration Documentation

enum Isis::AutoReg::RegisterStatus [inherited]

Enumerator:
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.

Definition at line 126 of file AutoReg.h.


Constructor & Destructor Documentation

Isis::MinimumDifference::MinimumDifference ( Pvl pvl  )  [inline]

Construct a MinimumDifference search algorithm.

This will construct a minimum difference search algorith. It is recommended that you use a AutoRegFactory class as opposed to this constructor

Parameters:
pvl A Pvl object that contains a valid automatic registration definition

Definition at line 69 of file MinimumDifference.h.

virtual Isis::MinimumDifference::~MinimumDifference (  )  [inline, virtual]

Destructor.

Definition at line 72 of file MinimumDifference.h.


Member Function Documentation

AutoReg::RegisterStatus Isis::AutoReg::AdaptiveRegistration ( Chip sChip,
Chip pChip,
Chip fChip,
int  startSamp,
int  startLine,
int  endSamp,
int  endLine,
int  bestSamp,
int  bestLine 
) [protected, virtual, inherited]

This virtual method must be written for adaptive pattern matching algorithms.

Adaptive algorithms are assumed to compute the registration to sub-pixel accuracy and stay within the defined window. A status should be returned indicating success for subpixel computation or failure and the reason why via the enumeration, RegisterStatus. If the status is returned is success, the programmer needs to set the sub-pixel chip coordinates using the protected methods SetChipSample(), SetChipLine().

For those algorithms that need it, the best sample and line in the search chip is provided. This is either the initial tack sample and line in the search chip or it is the centered sample and line after the reduction algorithm is applied (KJB, 2009-08-26).

Author:
janderson (6/2/2009)
Parameters:
startSamp Defines the starting sample of the window the adaptive algorithm should remain inside this boundary.
startLine Defines the starting line of the window the adaptive algorithm should remain inside this boundary.
endSamp Defines the ending sample of the window the adaptive algorithm should remain inside this boundary.
endLine Defines the ending line of the window the adaptive algorithm should remain inside this boundary.
Returns:
AutoReg::RegisterStatus Status of match

Reimplemented in Isis::Gruen.

Definition at line 981 of file AutoReg.cpp.

References _FILEINFO_, Isis::iException::Message(), and Isis::AutoReg::Success.

Referenced by Isis::AutoReg::Register().

virtual std::string Isis::MinimumDifference::AlgorithmName (  )  const [inline, protected, virtual]

Returns the name of the algorithm.

Returns:
std::string

Implements Isis::AutoReg.

Definition at line 78 of file MinimumDifference.h.

virtual Pvl Isis::AutoReg::AlgorithmStatistics ( Pvl pvl  )  [inline, protected, virtual, inherited]

Provide (adaptive) algorithms a chance to report results.

Provide Adaptive objects the opportunity to report behavior. It is called at the final step prior to program termination.

Parameters:
pvl Pvl structure to add report to
Returns:
Pvl Results

Reimplemented in Isis::Gruen.

Definition at line 296 of file AutoReg.h.

References pvl().

Referenced by Isis::AutoReg::RegistrationStatistics().

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::MinimumDifference::CompareFits ( double  fit1,
double  fit2 
) [protected, virtual]

This virtual method must return if the 1st fit is equal to or better than the second fit.

Parameters:
fit1 1st goodness of fit
fit2 2nd goodness of fit

Reimplemented from Isis::AutoReg.

Definition at line 76 of file MinimumDifference.cpp.

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::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::MinimumDifference::IdealFit (  )  const [inline, protected, virtual]

Returns the ideal (perfect) fit that could be returned by the MatchAlgorithm.

Returns:
double

Implements Isis::AutoReg.

Definition at line 77 of file MinimumDifference.h.

virtual bool Isis::AutoReg::IsAdaptive (  )  [inline, virtual, inherited]

Return if the algorithm is an adaptive pattern matching technique.

Reimplemented in Isis::AdaptiveGruen, and Isis::Gruen.

Definition at line 208 of file AutoReg.h.

Referenced by Isis::AutoReg::Register().

double Isis::MinimumDifference::MatchAlgorithm ( Chip pattern,
Chip subsearch 
) [protected, virtual]

Minimum difference match algorithm.

This virtual function overrides the pure virtual method in the AutoReg class. In this case, we sum the absolute value of the differences between pixels in the pattern and subsearch chips and divide by the valid pixel count. We ignore special pixels

Parameters:
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.
Returns:
The sum of the absolute value of the DN differences divided by the valid pixel count OR Isis::NULL if the valid pixel percent is not met.

Implements Isis::AutoReg.

Definition at line 47 of file MinimumDifference.cpp.

References Isis::Chip::GetValue(), Isis::IsSpecial(), line, Isis::Chip::Lines(), and Isis::Chip::Samples().

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.

Parameters:
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).

See also:
automaticRegistration.doc
Parameters:
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().

Chip Isis::AutoReg::Reduce ( Chip chip,
int  reductionFactor 
) [protected, inherited]

This method reduces the given chip by the given reduction factor.

Used to speed up the match algorithm.

Parameters:
reductionFactor 
Returns:
Chip

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.

Returns:
Returns the status of the 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

Author:
janderson (3/26/2009)
Returns:
Pvl

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.

Returns:
PvlGroup The keywords this object used in initialization

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.

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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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::AutoReg::SetReductionFactor ( int  factor  )  [inherited]

Set the reduction factor used to speed up the pattern matching algorithm.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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::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.

Parameters:
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.


Member Data Documentation

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().


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