All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
te::rp::TiePointsLocator Class Reference

Tie points locator. More...

#include <TiePointsLocator.h>

Inheritance diagram for te::rp::TiePointsLocator:
te::rp::Algorithm

Classes

class  ExecuteMatchingByCorrelationThreadEntryParams
 The parameters passed to the matchCorrelationEuclideanThreadEntry method. More...
 
class  ExecuteMatchingByEuclideanDistThreadEntryParams
 The parameters passed to the executeMatchingByEuclideanDistThreadEntry method. More...
 
class  InputParameters
 TiePointsLocator input parameters. More...
 
class  InterestPointT
 
class  MatchedInterestPointsT
 
class  MoravecLocatorThreadParams
 The parameters passed to the moravecLocatorThreadEntry method. More...
 
class  OutputParameters
 TiePointsLocator output parameters. More...
 
class  SurfLocatorThreadParams
 The parameters passed to the surfLocatorThreadEntry method. More...
 

Public Member Functions

bool execute (AlgorithmOutputParameters &outputParams) throw ( te::rp::Exception )
 Executes the algorithm using the supplied parameters. More...
 
bool initialize (const AlgorithmInputParameters &inputParams) throw ( te::rp::Exception )
 Initialize the algorithm instance making it ready for execution. More...
 
bool isInitialized () const
 Returns true if the algorithm instance is initialized and ready for execution. More...
 
void reset () throw ( te::rp::Exception )
 Clear all internal allocated objects and reset the algorithm to its initial state. More...
 
 TiePointsLocator ()
 
 ~TiePointsLocator ()
 

Protected Types

typedef te::rp::Matrix< double > DoublesMatrix
 A matrix do store double values. More...
 
typedef te::rp::Matrix< float > FloatsMatrix
 A matrix do store float values. More...
 
typedef std::list< InterestPointTInterestPointsListT
 
typedef std::multiset
< InterestPointT
InterestPointsSetT
 
typedef std::multiset
< MatchedInterestPointsT
MatchedInterestPointsSetT
 
typedef te::rp::Matrix
< unsigned char > 
UCharsMatrix
 A matrix do store unsigned char values. More...
 

Protected Member Functions

bool executeMoravec (const double raster1XRescFact, const double raster1YRescFact, const double raster2XRescFact, const double raster2YRescFact, te::common::TaskProgress *progressPtr, TiePointsLocator::OutputParameters *outParamsPtr, std::vector< double > &tiePointsWeights) throw ( te::rp::Exception )
 Executes the Moravec algorithm using the supplied parameters. More...
 
bool executeSurf (const double raster1XRescFact, const double raster1YRescFact, const double raster2XRescFact, const double raster2YRescFact, te::common::TaskProgress *progressPtr, TiePointsLocator::OutputParameters *outParamsPtr, std::vector< double > &tiePointsWeights) throw ( te::rp::Exception )
 Executes the SURF algorithm using the supplied parameters. More...
 
bool locateSurfInterestPoints (const FloatsMatrix &integralRasterData, UCharsMatrix const *maskRasterDataPtr, InterestPointsSetT &interestPoints) const
 SURF interest points locator. More...
 

Static Protected Member Functions

static bool applyGaussianFilter (const DoublesMatrix &inputData, DoublesMatrix &outputData, const unsigned int iterationsNumber)
 Gaussian Filter. More...
 
static bool applyMeanFilter (const FloatsMatrix &inputData, FloatsMatrix &outputData, const unsigned int iterationsNumber)
 Mean Filter. More...
 
static bool createIntegralImage (const FloatsMatrix &inputData, FloatsMatrix &outputData)
 Create an integral image. More...
 
static void createTifFromMatrix (const DoublesMatrix &rasterData, const InterestPointsSetT &interestPoints, const std::string &tifFileName)
 Moravec interest points locator. More...
 
static bool executeMatchingByCorrelation (const FloatsMatrix &featuresSet1, const FloatsMatrix &featuresSet2, const InterestPointsSetT &interestPointsSet1, const InterestPointsSetT &interestPointsSet2, const unsigned int maxPt1ToPt2PixelDistance, const unsigned int enableMultiThread, const double minAllowedAbsCorrelation, MatchedInterestPointsSetT &matchedPoints)
 Match each feature using correlation. More...
 
static void executeMatchingByCorrelationThreadEntry (ExecuteMatchingByCorrelationThreadEntryParams *paramsPtr)
 Correlation/Euclidean match thread entry. More...
 
static bool executeMatchingByEuclideanDist (const FloatsMatrix &featuresSet1, const FloatsMatrix &featuresSet2, const InterestPointsSetT &interestPointsSet1, const InterestPointsSetT &interestPointsSet2, const unsigned int maxPt1ToPt2PixelDistance, const double maxEuclideanDist, const unsigned int enableMultiThread, MatchedInterestPointsSetT &matchedPoints)
 Match each feature using eucliean distance. More...
 
static void executeMatchingByEuclideanDistThreadEntry (ExecuteMatchingByEuclideanDistThreadEntryParams *paramsPtr)
 Correlation/Euclidean match thread entry. More...
 
static void features2Tiff (const DoublesMatrix &features, const InterestPointsSetT &interestPoints, const std::string &fileNameBeginning)
 Save the generated features to tif files. More...
 
static bool generateCorrelationFeatures (const InterestPointsSetT &interestPoints, const unsigned int correlationWindowWidth, const FloatsMatrix &rasterData, FloatsMatrix &features, InterestPointsSetT &validInteresPoints)
 Generate correlation features ( normalized - unit vector ) matrix for the given interes points. More...
 
static bool generateSurfFeatures (const InterestPointsSetT &interestPoints, const FloatsMatrix &integralRasterData, InterestPointsSetT &validInterestPoints, FloatsMatrix &features)
 Generate a Surf features matrix for the given interes points. More...
 
template<typename BufferType >
static float getHaarXVectorIntensity (BufferType &buffer, const unsigned int &centerX, const unsigned int &centerY, const unsigned int &radius)
 Return a Haar X intesity vector for the window centered at the given point. More...
 
template<typename BufferType >
static float getHaarYVectorIntensity (BufferType &buffer, const unsigned int &centerX, const unsigned int &centerY, const unsigned int &radius)
 Return a Haar Y intesity vector for the window centered at the given point. More...
 
template<typename BufferType >
static float getIntegralBoxSum (BufferType &buffer, const unsigned int &upperLeftX, const unsigned int &upperLeftY, const unsigned int &lowerRightX, const unsigned int &lowerRightY)
 Return a sum of all pixels inside a box over the given integral image buffer. More...
 
static float getSurfDxxDerivative (float **bufferPtr, const unsigned int &centerX, const unsigned int &centerY, const unsigned int &lobeWidth, const unsigned int &lobeRadius)
 Return a SURF box filter Dyy derivative centered over the given position from the given integral image buffer. More...
 
static float getSurfDxyDerivative (float **bufferPtr, const unsigned int &centerX, const unsigned int &centerY, const unsigned int &lobeWidth)
 Return a SURF box filter Dxy derivative centered over the given position from the given integral image buffer. More...
 
static float getSurfDyyDerivative (float **bufferPtr, const unsigned int &centerX, const unsigned int &centerY, const unsigned int &lobeWidth, const unsigned int &lobeRadius)
 Return a SURF box filter Dxx derivative centered over the given position from the given integral image buffer. More...
 
static unsigned int getSurfFilterSize (const unsigned int &octaveIndex, const unsigned int &scaleIndex)
 Return the surf octave filter size (width). More...
 
static unsigned int getSurfOctaveBaseFilterSize (const unsigned int &octaveIndex)
 Return the surf octave base filter size (width). More...
 
static unsigned int getSurfOctaveFilterStepSize (const unsigned int &octaveIndex)
 Return the surf octave filter step size (width). More...
 
static bool loadRasterData (te::rst::Raster const *rasterPtr, const std::vector< unsigned int > &rasterBands, te::rst::Raster const *maskRasterPtr, const unsigned int maskRasterBand, const unsigned int rasterTargetAreaLineStart, const unsigned int rasterTargetAreaColStart, const unsigned int rasterTargetAreaWidth, const unsigned int rasterTargetAreaHeight, const double rescaleFactorX, const double rescaleFactorY, const te::rst::Interpolator::Method rasterInterpMethod, const unsigned char maxMemPercentUsage, std::vector< boost::shared_ptr< FloatsMatrix > > &loadedRasterData, UCharsMatrix &loadedMaskRasterData)
 Load rasters data (normalized between 0 and 1). More...
 
static bool locateMoravecInterestPoints (const FloatsMatrix &rasterData, UCharsMatrix const *maskRasterDataPtr, const unsigned int moravecWindowWidth, const unsigned int maxInterestPoints, const unsigned int enableMultiThread, InterestPointsSetT &interestPoints)
 Moravec interest points locator. More...
 
static void locateMoravecInterestPointsThreadEntry (MoravecLocatorThreadParams *paramsPtr)
 Movavec locator thread entry. More...
 
static void locateSurfInterestPointsThreadEntry (SurfLocatorThreadParams *paramsPtr)
 Surf locator thread entry. More...
 
static void printBuffer (double **buffer, const unsigned int nLines, const unsigned int nCols)
 Print the given buffer to std::out. More...
 
template<typename ElementT >
static void printMatrix (const te::rp::Matrix< ElementT > &matrix)
 Print the given matrix to std::out. More...
 
template<typename BufferElementT >
static void roolUpBuffer (BufferElementT **bufferPtr, const unsigned int &bufferLinesNumber)
 RoolUp a buffer of lines. More...
 
template<typename BufferElementT >
static void zeroFillBuffer (BufferElementT **bufferPtr, const unsigned int &bufferLinesNumber, const unsigned int &bufferColsNumber)
 Fill a buffer with zeroes. More...
 

Protected Attributes

TiePointsLocator::InputParameters m_inputParameters
 TiePointsLocator input execution parameters. More...
 
bool m_isInitialized
 Tells if this instance is initialized. More...
 

Detailed Description

Tie points locator.

Designed to find tie-points inside raster areas.

Definition at line 54 of file TiePointsLocator.h.

Member Typedef Documentation

A matrix do store double values.

Definition at line 234 of file TiePointsLocator.h.

A matrix do store float values.

Definition at line 228 of file TiePointsLocator.h.

Interest points list container type

Definition at line 291 of file TiePointsLocator.h.

Interest points set container type

Definition at line 287 of file TiePointsLocator.h.

Matched interest points container type

Definition at line 334 of file TiePointsLocator.h.

A matrix do store unsigned char values.

Definition at line 240 of file TiePointsLocator.h.

Constructor & Destructor Documentation

te::rp::TiePointsLocator::TiePointsLocator ( )

Definition at line 201 of file TiePointsLocator.cpp.

References reset().

te::rp::TiePointsLocator::~TiePointsLocator ( )

Definition at line 206 of file TiePointsLocator.cpp.

Member Function Documentation

bool te::rp::TiePointsLocator::applyGaussianFilter ( const DoublesMatrix inputData,
DoublesMatrix outputData,
const unsigned int  iterationsNumber 
)
staticprotected

Gaussian Filter.

Parameters
inputDataThe input data.
outputDataThe output data.
iterationsNumberThe number of filter iterations.
Returns
true if ok, false on errors.

Definition at line 2712 of file TiePointsLocator.cpp.

References te::rp::Matrix< double >::AutoMemPol, te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::reset(), and TERP_TRUE_OR_RETURN_FALSE.

bool te::rp::TiePointsLocator::applyMeanFilter ( const FloatsMatrix inputData,
FloatsMatrix outputData,
const unsigned int  iterationsNumber 
)
staticprotected

Mean Filter.

Parameters
inputDataThe input data.
outputDataThe output data.
iterationsNumberThe number of filter iterations.
Returns
true if ok, false on errors.

Definition at line 2799 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::AutoMemPol, te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::reset(), and TERP_TRUE_OR_RETURN_FALSE.

Referenced by executeMoravec().

bool te::rp::TiePointsLocator::createIntegralImage ( const FloatsMatrix inputData,
FloatsMatrix outputData 
)
staticprotected

Create an integral image.

Parameters
inputDataThe input data.
outputDataThe output data.
Note
The entry of an integral image IΣ(x) at a location x = (x, y) represents the sum of all pixels in the input image I of a rectangular region formed by the point x and the origi.
Returns
true if ok, false on errors.

Definition at line 2910 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::reset(), and TERP_TRUE_OR_RETURN_FALSE.

Referenced by executeSurf().

void te::rp::TiePointsLocator::createTifFromMatrix ( const DoublesMatrix rasterData,
const InterestPointsSetT interestPoints,
const std::string &  tifFileName 
)
staticprotected

Moravec interest points locator.

Parameters
rasterDataThe loaded raster data.
interestPointsThe found raster 1 interest points (coords related to rasterData lines/cols).
tifFileNameTif file name.

Definition at line 2636 of file TiePointsLocator.cpp.

References te::rst::BlueCInt, te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rst::GreenCInt, te::rst::RasterFactory::make(), te::rst::RedCInt, TERP_TRUE_OR_THROW, and te::dt::UCHAR_TYPE.

bool te::rp::TiePointsLocator::execute ( AlgorithmOutputParameters outputParams)
throw (te::rp::Exception
)
virtual

Executes the algorithm using the supplied parameters.

Parameters
outputParamsOutput parameters.
Returns
true if OK, false on errors.

Implements te::rp::Algorithm.

Definition at line 210 of file TiePointsLocator.cpp.

References te::gm::GTFilter::applyRansac(), executeMoravec(), executeSurf(), te::rp::TiePointsLocator::InputParameters::m_enableGeometryFilter, te::rp::TiePointsLocator::InputParameters::m_enableMultiThread, te::rp::TiePointsLocator::InputParameters::m_enableProgress, te::rp::TiePointsLocator::InputParameters::m_geometryFilterAssurance, te::rp::TiePointsLocator::InputParameters::m_geomTransfMaxError, te::rp::TiePointsLocator::InputParameters::m_geomTransfName, m_inputParameters, te::rp::TiePointsLocator::InputParameters::m_interesPointsLocationStrategy, m_isInitialized, te::rp::TiePointsLocator::InputParameters::m_pixelSizeXRelation, te::rp::TiePointsLocator::InputParameters::m_pixelSizeYRelation, te::rp::TiePointsLocator::InputParameters::m_rastersRescaleFactor, te::gm::GTParameters::m_tiePoints, te::rp::TiePointsLocator::OutputParameters::m_tiePoints, te::rp::TiePointsLocator::OutputParameters::m_transformationPtr, te::common::AbstractFactory< GeometricTransformation, std::string >::make(), te::rp::TiePointsLocator::InputParameters::MoravecStrategyT, te::rp::TiePointsLocator::InputParameters::SurfStrategyT, TERP_DEBUG_TRUE_OR_THROW, TERP_LOG_AND_THROW, TERP_TRUE_OR_RETURN_FALSE, and TERP_TRUE_OR_THROW.

Referenced by te::rp::SequenceMosaic::execute(), te::qt::widgets::TiePointsLocatorDialog::on_autoAcquireTiePointsPushButton_clicked(), and te::qt::widgets::TiePointLocatorWidget::onAutoAcquireTiePointsToolButtonClicked().

bool te::rp::TiePointsLocator::executeMatchingByCorrelation ( const FloatsMatrix featuresSet1,
const FloatsMatrix featuresSet2,
const InterestPointsSetT interestPointsSet1,
const InterestPointsSetT interestPointsSet2,
const unsigned int  maxPt1ToPt2PixelDistance,
const unsigned int  enableMultiThread,
const double  minAllowedAbsCorrelation,
MatchedInterestPointsSetT matchedPoints 
)
staticprotected

Match each feature using correlation.

Parameters
featuresSet1Features set 1.
featuresSet2Features set 2.
interestPointsSet1The interest pionts set 1.
interestPointsSet2The interest pionts set 2.
maxPt1ToPt2PixelDistanceZero (disabled) or the maximum distance (pixels) between a point from set 1 to a point from set 1 (points beyond this distance will not be correlated and will have zero as correlation value).
enableMultiThreadEnable/disable the use of threads.
minAllowedAbsCorrelationThe minimum acceptable absolute correlation value when matching features (when applicable).
matchedPointsThe matched points.
Note
Each matched point feature value ( MatchedInterestPoint::m_feature ) will be set to the absolute value of the correlation between then.

Definition at line 3591 of file TiePointsLocator.cpp.

References executeMatchingByCorrelationThreadEntry(), te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::getMemPolicy(), te::common::GetPhysProcNumber(), te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_corrMatrixPtr, te::rp::TiePointsLocator::MatchedInterestPointsT::m_feature, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_featuresSet1Ptr, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_featuresSet2Ptr, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_interestPointsSet1Ptr, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_interestPointsSet2Ptr, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_maxPt1ToPt2Distance, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_nextFeatureIdx1ToProcessPtr, te::rp::TiePointsLocator::MatchedInterestPointsT::m_point1, te::rp::TiePointsLocator::MatchedInterestPointsT::m_point2, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_syncMutexPtr, te::rp::Matrix< TemplateElementType >::RAMMemPol, te::rp::Matrix< TemplateElementType >::reset(), and TERP_TRUE_OR_RETURN_FALSE.

Referenced by executeMoravec().

void te::rp::TiePointsLocator::executeMatchingByCorrelationThreadEntry ( ExecuteMatchingByCorrelationThreadEntryParams paramsPtr)
staticprotected

Correlation/Euclidean match thread entry.

Parameters
paramsPtrA pointer to the thread parameters.

Definition at line 3755 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::getMemPolicy(), te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::insert(), te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_corrMatrixPtr, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_featuresSet1Ptr, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_featuresSet2Ptr, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_interestPointsSet1Ptr, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_interestPointsSet2Ptr, te::gm::Envelope::m_llx, te::gm::Envelope::m_lly, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_maxPt1ToPt2Distance, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_nextFeatureIdx1ToProcessPtr, te::rp::TiePointsLocator::ExecuteMatchingByCorrelationThreadEntryParams::m_syncMutexPtr, te::gm::Envelope::m_urx, te::gm::Envelope::m_ury, te::rp::TiePointsLocator::InterestPointT::m_x, te::rp::TiePointsLocator::InterestPointT::m_y, te::rp::Matrix< TemplateElementType >::RAMMemPol, and te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::search().

Referenced by executeMatchingByCorrelation().

bool te::rp::TiePointsLocator::executeMatchingByEuclideanDist ( const FloatsMatrix featuresSet1,
const FloatsMatrix featuresSet2,
const InterestPointsSetT interestPointsSet1,
const InterestPointsSetT interestPointsSet2,
const unsigned int  maxPt1ToPt2PixelDistance,
const double  maxEuclideanDist,
const unsigned int  enableMultiThread,
MatchedInterestPointsSetT matchedPoints 
)
staticprotected

Match each feature using eucliean distance.

Parameters
featuresSet1Features set 1.
featuresSet2Features set 2.
interestPointsSet1The interest pionts set 1.
interestPointsSet2The interest pionts set 2.
maxPt1ToPt2PixelDistanceZero (disabled) or the maximum distance (pixels) between a point from set 1 to a point from set 1 (points beyond this distance will not be correlated and will have zero as correlation value).
maxEuclideanDist//!< The maximum acceptable euclidean distance when matching features.
enableMultiThreadEnable/disable the use of threads.
matchedPointsThe matched points.
Note
Each matched point feature value ( MatchedInterestPoint::m_feature ) will be set to the inverse normalized distance in the range (0,1].

Definition at line 3889 of file TiePointsLocator.cpp.

References executeMatchingByEuclideanDistThreadEntry(), te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::getMemPolicy(), te::common::GetPhysProcNumber(), te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_distMatrixPtr, te::rp::TiePointsLocator::MatchedInterestPointsT::m_feature, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_featuresSet1Ptr, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_featuresSet2Ptr, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_interestPointsSet1Ptr, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_interestPointsSet2Ptr, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_maxPt1ToPt2Distance, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_nextFeatureIdx1ToProcessPtr, te::rp::TiePointsLocator::MatchedInterestPointsT::m_point1, te::rp::TiePointsLocator::MatchedInterestPointsT::m_point2, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_syncMutexPtr, te::rp::Matrix< TemplateElementType >::RAMMemPol, te::rp::Matrix< TemplateElementType >::reset(), and TERP_TRUE_OR_RETURN_FALSE.

Referenced by executeSurf().

void te::rp::TiePointsLocator::executeMatchingByEuclideanDistThreadEntry ( ExecuteMatchingByEuclideanDistThreadEntryParams paramsPtr)
staticprotected

Correlation/Euclidean match thread entry.

Parameters
paramsPtrA pointer to the thread parameters.

Definition at line 4057 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::getMemPolicy(), te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::insert(), te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_distMatrixPtr, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_featuresSet1Ptr, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_featuresSet2Ptr, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_interestPointsSet1Ptr, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_interestPointsSet2Ptr, te::gm::Envelope::m_llx, te::gm::Envelope::m_lly, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_maxPt1ToPt2Distance, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_nextFeatureIdx1ToProcessPtr, te::rp::TiePointsLocator::ExecuteMatchingByEuclideanDistThreadEntryParams::m_syncMutexPtr, te::gm::Envelope::m_urx, te::gm::Envelope::m_ury, te::rp::TiePointsLocator::InterestPointT::m_x, te::rp::TiePointsLocator::InterestPointT::m_y, te::rp::Matrix< TemplateElementType >::RAMMemPol, and te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::search().

Referenced by executeMatchingByEuclideanDist().

bool te::rp::TiePointsLocator::executeMoravec ( const double  raster1XRescFact,
const double  raster1YRescFact,
const double  raster2XRescFact,
const double  raster2YRescFact,
te::common::TaskProgress progressPtr,
TiePointsLocator::OutputParameters outParamsPtr,
std::vector< double > &  tiePointsWeights 
)
throw (te::rp::Exception
)
protected

Executes the Moravec algorithm using the supplied parameters.

Parameters
raster1XRescFactThe X axis rescale factor to be aplied into raster 1.
raster1YRescFactThe Y axis rescale factor to be aplied into raster 1.
raster2XRescFactThe X axis rescale factor to be aplied into raster 2.
raster2YRescFactThe Y axis rescale factor to be aplied into raster 2.
progressPtrA pointer to the progress instance or a NULL pointer if it is not used.
raster1DataThe raster 1 loaded data.
maskRaster1DataThe mask raster 1 loaded data.
outParamsPtrOutput parameters pointer.
tiePointsWeightsOuptut tie-points weights.
Returns
true if OK, false on errors.

Definition at line 357 of file TiePointsLocator.cpp.

References applyMeanFilter(), te::rp::Matrix< TemplateElementType >::AutoMemPol, te::rp::Matrix< TemplateElementType >::clear(), executeMatchingByCorrelation(), generateCorrelationFeatures(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), loadRasterData(), locateMoravecInterestPoints(), te::rp::TiePointsLocator::InputParameters::m_enableMultiThread, te::rp::TiePointsLocator::InputParameters::m_inMaskRaster1Ptr, te::rp::TiePointsLocator::InputParameters::m_inMaskRaster2Ptr, m_inputParameters, te::rp::TiePointsLocator::InputParameters::m_inRaster1Bands, te::rp::TiePointsLocator::InputParameters::m_inRaster1Ptr, te::rp::TiePointsLocator::InputParameters::m_inRaster2Bands, te::rp::TiePointsLocator::InputParameters::m_inRaster2Ptr, te::rp::TiePointsLocator::InputParameters::m_interpMethod, te::rp::TiePointsLocator::InputParameters::m_maxR1ToR2Offset, te::rp::TiePointsLocator::InputParameters::m_maxTiePoints, te::rp::TiePointsLocator::InputParameters::m_moravecCorrelationWindowWidth, te::rp::TiePointsLocator::InputParameters::m_moravecGaussianFilterIterations, te::rp::TiePointsLocator::InputParameters::m_moravecMinAbsCorrelation, te::rp::TiePointsLocator::InputParameters::m_moravecWindowWidth, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaColStart, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaHeight, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaLineStart, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaWidth, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaColStart, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaHeight, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaLineStart, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaWidth, te::rp::Matrix< TemplateElementType >::RAMMemPol, te::rp::Matrix< TemplateElementType >::reset(), and TERP_TRUE_OR_RETURN_FALSE.

Referenced by execute().

bool te::rp::TiePointsLocator::executeSurf ( const double  raster1XRescFact,
const double  raster1YRescFact,
const double  raster2XRescFact,
const double  raster2YRescFact,
te::common::TaskProgress progressPtr,
TiePointsLocator::OutputParameters outParamsPtr,
std::vector< double > &  tiePointsWeights 
)
throw (te::rp::Exception
)
protected

Executes the SURF algorithm using the supplied parameters.

Parameters
raster1XRescFactThe X axis rescale factor to be aplied into raster 1.
raster1YRescFactThe Y axis rescale factor to be aplied into raster 1.
raster2XRescFactThe X axis rescale factor to be aplied into raster 2.
raster2YRescFactThe Y axis rescale factor to be aplied into raster 2.
progressPtrA pointer to the progress instance or a NULL pointer if it is not used.
raster1DataThe raster 1 loaded data.
maskRaster1DataThe mask raster 1 loaded data.
outParamsPtrOutput parameters pointer.
tiePointsWeightsOuptut tie-points weights.
Returns
true if OK, false on errors.

Definition at line 724 of file TiePointsLocator.cpp.

References createIntegralImage(), executeMatchingByEuclideanDist(), generateSurfFeatures(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), loadRasterData(), locateSurfInterestPoints(), te::rp::TiePointsLocator::InputParameters::m_enableMultiThread, te::rp::TiePointsLocator::InputParameters::m_inMaskRaster1Ptr, te::rp::TiePointsLocator::InputParameters::m_inMaskRaster2Ptr, m_inputParameters, te::rp::TiePointsLocator::InputParameters::m_inRaster1Bands, te::rp::TiePointsLocator::InputParameters::m_inRaster1Ptr, te::rp::TiePointsLocator::InputParameters::m_inRaster2Bands, te::rp::TiePointsLocator::InputParameters::m_inRaster2Ptr, te::rp::TiePointsLocator::InputParameters::m_interpMethod, te::rp::TiePointsLocator::InputParameters::m_maxR1ToR2Offset, te::rp::TiePointsLocator::InputParameters::m_maxTiePoints, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaColStart, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaHeight, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaLineStart, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaWidth, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaColStart, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaHeight, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaLineStart, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaWidth, te::rp::TiePointsLocator::InputParameters::m_surfMaxNormEuclideanDist, and TERP_TRUE_OR_RETURN_FALSE.

Referenced by execute().

void te::rp::TiePointsLocator::features2Tiff ( const DoublesMatrix features,
const InterestPointsSetT interestPoints,
const std::string &  fileNameBeginning 
)
staticprotected

Save the generated features to tif files.

Parameters
featuresThe features to be saved.
validInteresPointsThe interest pionts related to each feature inside the features matrix.
fileNameStartThe output file name beginning.

Definition at line 3527 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rst::RasterFactory::make(), MAX, MIN, te::rst::RedCInt, TERP_TRUE_OR_THROW, and te::dt::UCHAR_TYPE.

bool te::rp::TiePointsLocator::generateCorrelationFeatures ( const InterestPointsSetT interestPoints,
const unsigned int  correlationWindowWidth,
const FloatsMatrix rasterData,
FloatsMatrix features,
InterestPointsSetT validInteresPoints 
)
staticprotected

Generate correlation features ( normalized - unit vector ) matrix for the given interes points.

Parameters
interestPointsThe interest points (coords related to rasterData lines/cols).
correlationWindowWidthThe correlation window width used to correlate points between the images.
rasterDataThe loaded raster data.
featuresThe generated features matrix (one feature per line, one feature per interes point).
validInteresPointsThe valid interest pionts related to each feature inside the features matrix (some interest points may be invalid and are removed).
Returns
true if ok, false on errors.

Definition at line 2940 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::reset(), ROUND, and TERP_TRUE_OR_RETURN_FALSE.

Referenced by executeMoravec().

bool te::rp::TiePointsLocator::generateSurfFeatures ( const InterestPointsSetT interestPoints,
const FloatsMatrix integralRasterData,
InterestPointsSetT validInterestPoints,
FloatsMatrix features 
)
staticprotected

Generate a Surf features matrix for the given interes points.

Parameters
interestPointsThe interest points (coords related to rasterData lines/cols).
integralRasterDataThe integral raster data.
validInterestPointsThe valid interest points.
featuresThe generated features matrix (one feature per line, one feature per interest point).
Returns
true if ok, false on errors.

Definition at line 3212 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), getHaarXVectorIntensity(), getHaarYVectorIntensity(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::reset(), ROUND, TERP_DEBUG_TRUE_OR_THROW, and TERP_TRUE_OR_RETURN_FALSE.

Referenced by executeSurf().

template<typename BufferType >
static float te::rp::TiePointsLocator::getHaarXVectorIntensity ( BufferType &  buffer,
const unsigned int &  centerX,
const unsigned int &  centerY,
const unsigned int &  radius 
)
inlinestaticprotected

Return a Haar X intesity vector for the window centered at the given point.

Parameters
bufferIntegral image buffer.
centerXCenter X.
centerYCenter Y.
radiusWindow radius.

Definition at line 1079 of file TiePointsLocator.h.

Referenced by generateSurfFeatures().

template<typename BufferType >
static float te::rp::TiePointsLocator::getHaarYVectorIntensity ( BufferType &  buffer,
const unsigned int &  centerX,
const unsigned int &  centerY,
const unsigned int &  radius 
)
inlinestaticprotected

Return a Haar Y intesity vector for the window centered at the given point.

Parameters
bufferIntegral image buffer.
centerXCenter X.
centerYCenter Y.
radiusWindow radius.

Definition at line 1111 of file TiePointsLocator.h.

Referenced by generateSurfFeatures().

template<typename BufferType >
static float te::rp::TiePointsLocator::getIntegralBoxSum ( BufferType &  buffer,
const unsigned int &  upperLeftX,
const unsigned int &  upperLeftY,
const unsigned int &  lowerRightX,
const unsigned int &  lowerRightY 
)
inlinestaticprotected

Return a sum of all pixels inside a box over the given integral image buffer.

Parameters
bufferPtrBuffer pointer.
upperLeftXBox upper left X.
upperLeftYBox upper left Y.
lowerRightXBox lower right X.
lowerRightYBox lower right X.

Definition at line 942 of file TiePointsLocator.h.

static float te::rp::TiePointsLocator::getSurfDxxDerivative ( float **  bufferPtr,
const unsigned int &  centerX,
const unsigned int &  centerY,
const unsigned int &  lobeWidth,
const unsigned int &  lobeRadius 
)
inlinestaticprotected

Return a SURF box filter Dyy derivative centered over the given position from the given integral image buffer.

Parameters
bufferPtrBuffer pointer.
centerXCenter X.
centerYCenter Y.
lobeWidthFilter lobe width.
lobeRadiusFilter lobe radius.

Definition at line 998 of file TiePointsLocator.h.

Referenced by locateSurfInterestPointsThreadEntry().

static float te::rp::TiePointsLocator::getSurfDxyDerivative ( float **  bufferPtr,
const unsigned int &  centerX,
const unsigned int &  centerY,
const unsigned int &  lobeWidth 
)
inlinestaticprotected

Return a SURF box filter Dxy derivative centered over the given position from the given integral image buffer.

Parameters
bufferPtrBuffer pointer.
centerXCenter X.
centerYCenter Y.
lobeWidthFilter lobe width.

Definition at line 1029 of file TiePointsLocator.h.

Referenced by locateSurfInterestPointsThreadEntry().

static float te::rp::TiePointsLocator::getSurfDyyDerivative ( float **  bufferPtr,
const unsigned int &  centerX,
const unsigned int &  centerY,
const unsigned int &  lobeWidth,
const unsigned int &  lobeRadius 
)
inlinestaticprotected

Return a SURF box filter Dxx derivative centered over the given position from the given integral image buffer.

Parameters
bufferPtrBuffer pointer.
centerXCenter X.
centerYCenter Y.
lobeWidthFilter lobe width.
lobeRadiusFilter lobe radius.

Definition at line 965 of file TiePointsLocator.h.

Referenced by locateSurfInterestPointsThreadEntry().

static unsigned int te::rp::TiePointsLocator::getSurfFilterSize ( const unsigned int &  octaveIndex,
const unsigned int &  scaleIndex 
)
inlinestaticprotected

Return the surf octave filter size (width).

Parameters
octaveIndexOctave index (starting from zero).
scaleIndexScale index (starting from zero).

Definition at line 1158 of file TiePointsLocator.h.

Referenced by initialize(), locateSurfInterestPoints(), and locateSurfInterestPointsThreadEntry().

static unsigned int te::rp::TiePointsLocator::getSurfOctaveBaseFilterSize ( const unsigned int &  octaveIndex)
inlinestaticprotected

Return the surf octave base filter size (width).

Parameters
octaveIndexOctave index (starting from zero).

Definition at line 1146 of file TiePointsLocator.h.

static unsigned int te::rp::TiePointsLocator::getSurfOctaveFilterStepSize ( const unsigned int &  octaveIndex)
inlinestaticprotected

Return the surf octave filter step size (width).

Parameters
octaveIndexOctave index (starting from zero).

Definition at line 1136 of file TiePointsLocator.h.

bool te::rp::TiePointsLocator::initialize ( const AlgorithmInputParameters inputParams)
throw (te::rp::Exception
)
virtual

Initialize the algorithm instance making it ready for execution.

Parameters
inputParamsInput parameters.
Returns
true if OK, false on errors.
Note
A return error string can be obtained via te::rp::Module::getLastLogStr()

Implements te::rp::Algorithm.

Definition at line 1088 of file TiePointsLocator.cpp.

References te::common::AbstractFactory< GeometricTransformation, std::string >::find(), te::rst::Raster::getAccessPolicy(), te::rst::Raster::getNumberOfBands(), te::rst::Raster::getNumberOfColumns(), te::rst::Raster::getNumberOfRows(), getSurfFilterSize(), te::common::GetTotalPhysicalMemory(), te::common::GetTotalVirtualMemory(), te::common::GetUsedVirtualMemory(), te::rp::TiePointsLocator::InputParameters::m_geometryFilterAssurance, te::rp::TiePointsLocator::InputParameters::m_geomTransfMaxError, te::rp::TiePointsLocator::InputParameters::m_geomTransfName, te::rp::TiePointsLocator::InputParameters::m_inMaskRaster1Ptr, te::rp::TiePointsLocator::InputParameters::m_inMaskRaster2Ptr, m_inputParameters, te::rp::TiePointsLocator::InputParameters::m_inRaster1Bands, te::rp::TiePointsLocator::InputParameters::m_inRaster1Ptr, te::rp::TiePointsLocator::InputParameters::m_inRaster2Bands, te::rp::TiePointsLocator::InputParameters::m_inRaster2Ptr, te::rp::TiePointsLocator::InputParameters::m_interesPointsLocationStrategy, m_isInitialized, te::rp::TiePointsLocator::InputParameters::m_maxTiePoints, te::rp::TiePointsLocator::InputParameters::m_moravecCorrelationWindowWidth, te::rp::TiePointsLocator::InputParameters::m_moravecMinAbsCorrelation, te::rp::TiePointsLocator::InputParameters::m_moravecWindowWidth, te::rp::TiePointsLocator::InputParameters::m_pixelSizeXRelation, te::rp::TiePointsLocator::InputParameters::m_pixelSizeYRelation, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaColStart, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaHeight, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaLineStart, te::rp::TiePointsLocator::InputParameters::m_raster1TargetAreaWidth, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaColStart, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaHeight, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaLineStart, te::rp::TiePointsLocator::InputParameters::m_raster2TargetAreaWidth, te::rp::TiePointsLocator::InputParameters::m_rastersRescaleFactor, te::rp::TiePointsLocator::InputParameters::m_surfMaxNormEuclideanDist, te::rp::TiePointsLocator::InputParameters::m_surfOctavesNumber, te::rp::TiePointsLocator::InputParameters::m_surfScalesNumber, te::rp::TiePointsLocator::InputParameters::MoravecStrategyT, te::common::RAccess, reset(), te::rp::TiePointsLocator::InputParameters::SurfStrategyT, TERP_LOG_AND_RETURN_FALSE, and TERP_TRUE_OR_RETURN_FALSE.

Referenced by te::rp::SequenceMosaic::execute(), te::qt::widgets::TiePointsLocatorDialog::on_autoAcquireTiePointsPushButton_clicked(), and te::qt::widgets::TiePointLocatorWidget::onAutoAcquireTiePointsToolButtonClicked().

bool te::rp::TiePointsLocator::isInitialized ( ) const
virtual

Returns true if the algorithm instance is initialized and ready for execution.

Returns
true if the algorithm instance is initialized and ready for execution.

Implements te::rp::Algorithm.

Definition at line 1415 of file TiePointsLocator.cpp.

References m_isInitialized.

bool te::rp::TiePointsLocator::loadRasterData ( te::rst::Raster const *  rasterPtr,
const std::vector< unsigned int > &  rasterBands,
te::rst::Raster const *  maskRasterPtr,
const unsigned int  maskRasterBand,
const unsigned int  rasterTargetAreaLineStart,
const unsigned int  rasterTargetAreaColStart,
const unsigned int  rasterTargetAreaWidth,
const unsigned int  rasterTargetAreaHeight,
const double  rescaleFactorX,
const double  rescaleFactorY,
const te::rst::Interpolator::Method  rasterInterpMethod,
const unsigned char  maxMemPercentUsage,
std::vector< boost::shared_ptr< FloatsMatrix > > &  loadedRasterData,
UCharsMatrix loadedMaskRasterData 
)
staticprotected

Load rasters data (normalized between 0 and 1).

Parameters
rasterPtrInput raster pointer.
rasterBandsInput raster bands.
maskRasterPtrThe related input mask raster pointer (or zero, if no mask raster is avaliable).
maskRasterBandThe input mask raster band to use.
rasterTargetAreaLineStartThe raster target area initial line.
rasterTargetAreaColStartThe raster target area initial column.
rasterTargetAreaWidthThe raster target area width.
rasterTargetAreaHeightThe raster target area height.
rescaleFactorXScale factor to be applied on the loaded data.
rescaleFactorYScale factor to be applied on the loaded data.
rasterInterpMethodThe interpolation used when loading the input raster.
maxMemPercentUsageThe maximum amount (percent) of memory to use for the loaded data [0,100].
loadedRasterDataThe loaded raster data.
loadedMaskRasterDataThe loaded mask raster data.
Returns
true if ok, false on errors.

Definition at line 1420 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::AutoMemPol, te::rp::Matrix< double >::AutoMemPol, te::rst::Raster::getBand(), te::rst::Interpolator::getValue(), te::rst::Band::getValue(), MAX, te::rp::Matrix< TemplateElementType >::reset(), reset(), and TERP_TRUE_OR_RETURN_FALSE.

Referenced by executeMoravec(), and executeSurf().

bool te::rp::TiePointsLocator::locateMoravecInterestPoints ( const FloatsMatrix rasterData,
UCharsMatrix const *  maskRasterDataPtr,
const unsigned int  moravecWindowWidth,
const unsigned int  maxInterestPoints,
const unsigned int  enableMultiThread,
InterestPointsSetT interestPoints 
)
staticprotected

Moravec interest points locator.

Parameters
rasterDataThe loaded raster data.
maskRasterDataPtrThe loaded mask raster data pointer (or zero if no mask is avaliable).
moravecWindowWidthMoravec window width.
maxInterestPointsThe maximum number of interest points to find over raster 1.
enableMultiThreadEnable/disable multi-thread.
interestPointsThe found interest points (coords related to rasterData lines/cols).
Note
InterestPointT::m_feature1 will be sum of differences between the Moravec filter response of each pixel and its neighborhoods (always a positive value).
Returns
true if ok, false on errors.

Definition at line 1583 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::common::GetPhysProcNumber(), locateMoravecInterestPointsThreadEntry(), te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_interestPointsAccessMutexPtr, te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_interestPointsPtr, te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_maskRasterDataPtr, te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_maxInterestPointsPerRasterLinesBlock, te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_maxRasterLinesBlockMaxSize, te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_moravecWindowWidth, te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_nextRasterLinesBlockToProcessValuePtr, te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_rastaDataAccessMutexPtr, te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_rasterDataPtr, and te::rp::TiePointsLocator::MoravecLocatorThreadParams::m_returnValuePtr.

Referenced by executeMoravec().

void te::rp::TiePointsLocator::locateMoravecInterestPointsThreadEntry ( MoravecLocatorThreadParams paramsPtr)
staticprotected
bool te::rp::TiePointsLocator::locateSurfInterestPoints ( const FloatsMatrix integralRasterData,
UCharsMatrix const *  maskRasterDataPtr,
InterestPointsSetT interestPoints 
) const
protected

SURF interest points locator.

Parameters
integralRasterDataIntegral image raster data.
maskRasterDataPtrThe loaded mask raster data pointer (or zero if no mask is avaliable).
interestPointsThe found interest points (coords related to rasterData lines/cols).
Returns
true if ok, false on errors.
Note
InterestPointT::m_feature1 will be sum of differences between the hessian matrix determinant each pixel and its neighborhoods (always a positive value).
InterestPointT::m_feature2 will be used filter width (pixels).
InterestPointT::m_feature3 will 1 if the laplacian sign is positive, or zero if negative.

Definition at line 1977 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::common::GetPhysProcNumber(), getSurfFilterSize(), locateSurfInterestPointsThreadEntry(), te::rp::TiePointsLocator::InputParameters::m_enableMultiThread, m_inputParameters, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_integralRasterDataPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_interestPointsAccessMutexPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_interestPointsPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_maskRasterDataPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_maxInterestPointsPerRasterLinesBlock, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_maxRasterLinesBlockMaxSize, te::rp::TiePointsLocator::InputParameters::m_maxTiePoints, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_nextRasterLinesBlockToProcessValuePtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_octavesNumber, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_rastaDataAccessMutexPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_returnValuePtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_scalesNumber, te::rp::TiePointsLocator::InputParameters::m_surfOctavesNumber, and te::rp::TiePointsLocator::InputParameters::m_surfScalesNumber.

Referenced by executeSurf().

void te::rp::TiePointsLocator::locateSurfInterestPointsThreadEntry ( SurfLocatorThreadParams paramsPtr)
staticprotected

Surf locator thread entry.

Parameters
paramsPtrA pointer to the thread parameters.

Definition at line 2047 of file TiePointsLocator.cpp.

References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), getSurfDxxDerivative(), getSurfDxyDerivative(), getSurfDyyDerivative(), getSurfFilterSize(), te::rp::TiePointsLocator::InterestPointT::m_feature1, te::rp::TiePointsLocator::InterestPointT::m_feature2, te::rp::TiePointsLocator::InterestPointT::m_feature3, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_integralRasterDataPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_interestPointsAccessMutexPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_interestPointsPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_maskRasterDataPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_maxInterestPointsPerRasterLinesBlock, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_maxRasterLinesBlockMaxSize, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_nextRasterLinesBlockToProcessValuePtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_octavesNumber, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_rastaDataAccessMutexPtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_returnValuePtr, te::rp::TiePointsLocator::SurfLocatorThreadParams::m_scalesNumber, te::rp::TiePointsLocator::InterestPointT::m_x, te::rp::TiePointsLocator::InterestPointT::m_y, te::rp::Matrix< TemplateElementType >::RAMMemPol, te::rp::Matrix< TemplateElementType >::reset(), and roolUpBuffer().

Referenced by locateSurfInterestPoints().

void te::rp::TiePointsLocator::printBuffer ( double **  buffer,
const unsigned int  nLines,
const unsigned int  nCols 
)
staticprotected

Print the given buffer to std::out.

Parameters
bufferBuffer pointer.
nLinesNumber of lines.
nColsNumber of columns.

Definition at line 4177 of file TiePointsLocator.cpp.

template<typename ElementT >
static void te::rp::TiePointsLocator::printMatrix ( const te::rp::Matrix< ElementT > &  matrix)
inlinestaticprotected

Print the given matrix to std::out.

Parameters
matrixThe given matrix.

Definition at line 896 of file TiePointsLocator.h.

References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), and te::rp::Matrix< TemplateElementType >::getLinesNumber().

template<typename BufferElementT >
static void te::rp::TiePointsLocator::roolUpBuffer ( BufferElementT **  bufferPtr,
const unsigned int &  bufferLinesNumber 
)
inlinestaticprotected

RoolUp a buffer of lines.

Parameters
bufferPtrBuffer pointer.
bufferLinesNumberBuffer lines number.

Definition at line 651 of file TiePointsLocator.h.

Referenced by locateMoravecInterestPointsThreadEntry(), and locateSurfInterestPointsThreadEntry().

template<typename BufferElementT >
static void te::rp::TiePointsLocator::zeroFillBuffer ( BufferElementT **  bufferPtr,
const unsigned int &  bufferLinesNumber,
const unsigned int &  bufferColsNumber 
)
inlinestaticprotected

Fill a buffer with zeroes.

Parameters
bufferPtrBuffer pointer.
bufferLinesNumberBuffer lines number.
bufferColsNumberBuffer columns number.

Definition at line 679 of file TiePointsLocator.h.

Member Data Documentation

TiePointsLocator::InputParameters te::rp::TiePointsLocator::m_inputParameters
protected

TiePointsLocator input execution parameters.

Definition at line 459 of file TiePointsLocator.h.

Referenced by execute(), executeMoravec(), executeSurf(), initialize(), locateSurfInterestPoints(), and reset().

bool te::rp::TiePointsLocator::m_isInitialized
protected

Tells if this instance is initialized.

Definition at line 462 of file TiePointsLocator.h.

Referenced by execute(), initialize(), isInitialized(), and reset().


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