14#include <QSharedPointer>
19#include "GSLUtility.h"
20#include <gsl/gsl_rng.h>
62 return (m_gruen->PatternChip());
68 return (m_gruen->SearchChip());
74 return (m_gruen->FitChip());
81 const double &minEV,
const double &maxEV);
95 inline BigInt OffImageErrorCount()
const {
return (m_offImage); }
96 inline BigInt SpiceErrorCount()
const {
return (m_spiceErr); }
109 QSharedPointer<Gruen> m_gruen;
113 const gsl_rng_type * T;
117 bool validate(
const bool &throwError =
true)
const;
119 inline Camera &lhCamera() {
return (*m_lhCube->
camera()); }
120 inline Camera &rhCamera() {
return (*m_rhCube->
camera()); }
122 Coordinate
getLineSample(Camera &camera,
const Coordinate &geom);
123 Coordinate
getLatLon(Camera &camera,
const Coordinate &pnt);
125 bool inCube(
const Camera &camera,
const Coordinate &point)
const;
128 const PointGeometry &right, Gruen *gruen);
Container for affine and radiometric parameters.
A small chip of data used for pattern matching.
Define a generic Y/X container.
IO Handler for Isis Cubes.
Camera * camera()
Return a camera associated with the cube.
Container for a point and its geometry.
Define a point set of left, right and geometry at that location.
Contains multiple PvlContainers.
Container for cube-like labels.
Workhorse of stereo matcher.
SmtkPoint Register(const Coordinate &lpnt, const AffineRadio &affrad=AffineRadio())
This method takes a sample, line from the left-hand image and tries to find the matching point in the...
SmtkPoint Clone(const SmtkPoint &point, const Coordinate &left)
Clone a point set from a nearby (left image) point and Gruen affine.
SmtkQStackIter FindExpDistEV(SmtkQStack &stack, const double &seedsample, const double &minEV, const double &maxEV)
Find the best eigen value using exponential distribution formula.
Chip * SearchChip() const
Return search chip.
void setImages(Cube *lhImage, Cube *rhImage)
Assign cubes for matching.
SmtkPoint makeRegisteredPoint(const PointGeometry &left, const PointGeometry &right, Gruen *gruen)
Create an SmtkPoint from Gruen match result.
Chip * PatternChip() const
Return pattern chip.
bool isValid(const Coordinate &pnt)
Determine if a point is valid in both left/right images.
void setGruenDef(const QString ®def)
Initialize Gruen algorithm with definitions in Pvl file provided.
PvlGroup RegTemplate()
Return Gruen template parameters.
Chip * FitChip() const
Returns the fit chip.
Pvl RegistrationStatistics()
Return Gruen registration statistics.
bool validate(const bool &throwError=true) const
Validates the state of the Camera and Gruen algoritm.
~SmtkMatcher()
Free random number generator in destructor.
void randomNumberSetup()
Initialize the random number generator.
bool inCube(const Camera &camera, const Coordinate &point) const
Determines if the line/sample is within physical cube boundaries.
SmtkQStackIter FindSmallestEV(SmtkQStack &stack)
Find the smallest eigen value on the given stack.
void setWriteSubsearchChipPattern(const QString &fileptrn="SmtkMatcher")
Set file pattern for output subsearch chips.
SmtkMatcher()
Construct default matcher.
Coordinate getLineSample(Camera &camera, const Coordinate &geom)
Compute line,sample from latitude, longitude.
SmtkPoint Create(const Coordinate &left, const Coordinate &right)
Create a valid, unregistered SmtkPoint.
Coordinate getLatLon(Camera &camera, const Coordinate &pnt)
Compute latitude, longitude from line,sample.
Container for SMTK match points.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
long long int BigInt
Big int.