te::rp::TiePointsLocatorMoravecStrategy Class Reference

Tie-points locator Moravec strategy. More...

#include <TiePointsLocatorMoravecStrategy.h>

Inheritance diagram for te::rp::TiePointsLocatorMoravecStrategy:
te::rp::TiePointsLocatorStrategy

Classes

class  ExecuteMatchingByCorrelationThreadEntryParams
 The parameters passed to the matchCorrelationEuclideanThreadEntry method. More...
 
class  MoravecLocatorThreadParams
 The parameters passed to the moravecLocatorThreadEntry method. More...
 
class  Parameters
 TiePointsLocator Moravec strategy parameters. More...
 

Public Member Functions

void getDefaultSpecStrategyParams (std::auto_ptr< TiePointsLocatorStrategyParameters > &defaultSpecParamsPtr) const
 Returns a sub-sampled version of the given locator strategy specific input parameters. More...
 
void getSubSampledSpecStrategyParams (const double subSampleOptimizationRescaleFactor, const TiePointsLocatorStrategyParameters &inputSpecParams, std::auto_ptr< TiePointsLocatorStrategyParameters > &subSampledSpecParamsPtr) const
 Returns a sub-sampled version of the given locator strategy specific input parameters. More...
 
 ~TiePointsLocatorMoravecStrategy ()
 

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< InterestPointTInterestPointsSetT
 
typedef std::multiset< MatchedInterestPointsTMatchedInterestPointsSetT
 
typedef te::rp::Matrix< unsigned char > UCharsMatrix
 A matrix do store unsigned char values. More...
 

Protected Member Functions

bool executeMatchingByCorrelation (const FloatsMatrix &featuresSet1, const FloatsMatrix &featuresSet2, const InterestPointsSetT &interestPointsSet1, const InterestPointsSetT &interestPointsSet2, te::gm::GeometricTransformation const *const raster1ToRaster2TransfPtr, const double raster1ToRaster2TransfDMapError, MatchedInterestPointsSetT &matchedPoints) const
 Match each feature using correlation. More...
 
unsigned int getAutoMaxTiePointsNumber () const
 Returns a automatically calculated optimum maximum amount tie-points following the current parameters. More...
 
bool getMatchedInterestPoints (te::gm::GeometricTransformation const *const raster1ToRaster2TransfPtr, const double raster1ToRaster2TransfDMapError, MatchedInterestPointsSetT &matchedInterestPoints)
 Try to find matched interest points. More...
 
bool initialize (const te::rp::TiePointsLocatorInputParameters &inputParameters)
 Initialize the strategy. More...
 
bool locateMoravecInterestPoints (const unsigned int maxInterestPoints, const FloatsMatrix &rasterData, UCharsMatrix const *maskRasterDataPtr, InterestPointsSetT &interestPoints) const
 Moravec interest points locator. More...
 
void reset ()
 Clear all internal allocated resources and go back to the initial not-initialized state. More...
 
 TiePointsLocatorMoravecStrategy ()
 

Static Protected Member Functions

static bool applyMeanFilter (const FloatsMatrix &inputData, FloatsMatrix &outputData, const unsigned int iterationsNumber)
 Mean Filter. More...
 
static bool checkForDuplicatedInterestPoints (const InterestPointsSetT &interestPoints, double &x, double &y)
 Check for duplicated interest points. More...
 
static void createTifFromMatrix (const FloatsMatrix &rasterData, const InterestPointsSetT &interestPoints, const std::string &tifFileName)
 Moravec interest points locator. More...
 
static void executeMatchingByCorrelationThreadEntry (ExecuteMatchingByCorrelationThreadEntryParams *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 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 desiredRescaleFactorX, const double desiredRescaleFactorY, const te::rst::Interpolator::Method rasterInterpMethod, const unsigned char maxMemPercentUsage, std::vector< boost::shared_ptr< FloatsMatrix > > &loadedRasterData, UCharsMatrix &loadedMaskRasterData, double &achievedRescaleFactorX, double &achievedRescaleFactorY)
 Load rasters data (normalized between 0 and 1). More...
 
static void locateMoravecInterestPointsThreadEntry (MoravecLocatorThreadParams *paramsPtr)
 Movavec locator thread entry. More...
 
template<typename BufferElementT >
static void roolUpBuffer (BufferElementT **bufferPtr, const unsigned int &bufferLinesNumber)
 RoolUp a buffer of lines. More...
 

Protected Attributes

te::rp::TiePointsLocatorInputParameters m_inputParameters
 Input parameters. More...
 
bool m_isInitialized
 true if this instance is initialized. More...
 

Friends

class TiePointsLocatorMoravecStrategyFactory
 

Detailed Description

Tie-points locator Moravec strategy.

Definition at line 45 of file TiePointsLocatorMoravecStrategy.h.

Member Typedef Documentation

A matrix do store double values.

Definition at line 92 of file TiePointsLocatorStrategy.h.

A matrix do store float values.

Definition at line 86 of file TiePointsLocatorStrategy.h.

Interest points list container type

Definition at line 149 of file TiePointsLocatorStrategy.h.

typedef std::multiset< InterestPointT > te::rp::TiePointsLocatorStrategy::InterestPointsSetT
protectedinherited

Interest points set container type

Definition at line 145 of file TiePointsLocatorStrategy.h.

Matched interest points container type

Definition at line 192 of file TiePointsLocatorStrategy.h.

A matrix do store unsigned char values.

Definition at line 98 of file TiePointsLocatorStrategy.h.

Constructor & Destructor Documentation

te::rp::TiePointsLocatorMoravecStrategy::~TiePointsLocatorMoravecStrategy ( )
te::rp::TiePointsLocatorMoravecStrategy::TiePointsLocatorMoravecStrategy ( )
protected

Member Function Documentation

static bool te::rp::TiePointsLocatorMoravecStrategy::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.
static bool te::rp::TiePointsLocatorStrategy::checkForDuplicatedInterestPoints ( const InterestPointsSetT interestPoints,
double &  x,
double &  y 
)
staticprotectedinherited

Check for duplicated interest points.

Parameters
xThe duplicated tie-points X coord.
yThe duplicated tie-points Y coord.
Returns
false if duplicated interest points were found.
static void te::rp::TiePointsLocatorStrategy::createTifFromMatrix ( const FloatsMatrix rasterData,
const InterestPointsSetT interestPoints,
const std::string &  tifFileName 
)
staticprotectedinherited

Moravec interest points locator.

Parameters
rasterDataThe loaded raster data.
interestPointsThe found raster 1 interest points (coords related to rasterData lines/cols).
tifFileNameTif file name.
bool te::rp::TiePointsLocatorMoravecStrategy::executeMatchingByCorrelation ( const FloatsMatrix featuresSet1,
const FloatsMatrix featuresSet2,
const InterestPointsSetT interestPointsSet1,
const InterestPointsSetT interestPointsSet2,
te::gm::GeometricTransformation const *const  raster1ToRaster2TransfPtr,
const double  raster1ToRaster2TransfDMapError,
MatchedInterestPointsSetT matchedPoints 
) const
protected

Match each feature using correlation.

Parameters
featuresSet1Features set 1.
featuresSet2Features set 2.
interestPointsSet1The interest pionts set 1 (full raster 1 indexed coods reference).
interestPointsSet2The interest pionts set 2 (full raster 1 indexed coods reference).
raster1ToRaster2TransfPtrA pointer to a transformation direct mapping raster 1 indexed coords into raster 2 indexed coords, of an empty pointer if there is no transformation avaliable.
raster1ToRaster2TransfDMapErrorThe expected transformation error.
matchedPointsThe matched points (full raster 1 indexed coods reference).
Note
Each matched point feature value ( MatchedInterestPoint::m_feature ) will be set to the absolute value of the correlation between then.
static void te::rp::TiePointsLocatorMoravecStrategy::executeMatchingByCorrelationThreadEntry ( ExecuteMatchingByCorrelationThreadEntryParams paramsPtr)
staticprotected

Correlation/Euclidean match thread entry.

Parameters
paramsPtrA pointer to the thread parameters.
static void te::rp::TiePointsLocatorStrategy::features2Tiff ( const DoublesMatrix features,
const InterestPointsSetT interestPoints,
const std::string &  fileNameBeginning 
)
staticprotectedinherited

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.
static bool te::rp::TiePointsLocatorMoravecStrategy::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.
unsigned int te::rp::TiePointsLocatorMoravecStrategy::getAutoMaxTiePointsNumber ( ) const
protectedvirtual

Returns a automatically calculated optimum maximum amount tie-points following the current parameters.

Returns
Returns a automatically calculated optimum maximum amount tie-points following the current parameters.

Implements te::rp::TiePointsLocatorStrategy.

void te::rp::TiePointsLocatorMoravecStrategy::getDefaultSpecStrategyParams ( std::auto_ptr< TiePointsLocatorStrategyParameters > &  defaultSpecParamsPtr) const
virtual

Returns a sub-sampled version of the given locator strategy specific input parameters.

Parameters
subSampleOptimizationRescaleFactorSub-sampled optimization tie-points search rescale factor.
inputSpecParamsInput parameters (sub-sample factor 1).
subSampledSpecParamsSub-sampled parameters.

Implements te::rp::TiePointsLocatorStrategy.

bool te::rp::TiePointsLocatorMoravecStrategy::getMatchedInterestPoints ( te::gm::GeometricTransformation const *const  raster1ToRaster2TransfPtr,
const double  raster1ToRaster2TransfDMapError,
MatchedInterestPointsSetT matchedInterestPoints 
)
protectedvirtual

Try to find matched interest points.

Parameters
matchedInterestPointsThe matched interest points.
raster1ToRaster2TransfPtrA pointer to a transformation (estimation) direct mapping raster 1 indexed coords into raster 2 indexed coords, of an empty pointer if there is no transformation avaliable.
raster1ToRaster2TransfDMapErrorThe expected transformation error.
Returns
true if OK, false on errors.

Implements te::rp::TiePointsLocatorStrategy.

void te::rp::TiePointsLocatorMoravecStrategy::getSubSampledSpecStrategyParams ( const double  subSampleOptimizationRescaleFactor,
const TiePointsLocatorStrategyParameters inputSpecParams,
std::auto_ptr< TiePointsLocatorStrategyParameters > &  subSampledSpecParamsPtr 
) const
virtual

Returns a sub-sampled version of the given locator strategy specific input parameters.

Parameters
subSampleOptimizationRescaleFactorSub-sampled optimization tie-points search rescale factor.
inputSpecParamsInput parameters (sub-sample factor 1).
subSampledSpecParamsPtrSub-sampled parameters.

Implements te::rp::TiePointsLocatorStrategy.

bool te::rp::TiePointsLocatorMoravecStrategy::initialize ( const te::rp::TiePointsLocatorInputParameters inputParameters)
protectedvirtual

Initialize the strategy.

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

Implements te::rp::TiePointsLocatorStrategy.

static bool te::rp::TiePointsLocatorStrategy::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  desiredRescaleFactorX,
const double  desiredRescaleFactorY,
const te::rst::Interpolator::Method  rasterInterpMethod,
const unsigned char  maxMemPercentUsage,
std::vector< boost::shared_ptr< FloatsMatrix > > &  loadedRasterData,
UCharsMatrix loadedMaskRasterData,
double &  achievedRescaleFactorX,
double &  achievedRescaleFactorY 
)
staticprotectedinherited

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.
desiredRescaleFactorXThe desired Scale factor to be applied on the loaded data.
desiredRescaleFactorYThe desired Scale 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.
desiredRescaleFactorXThe real achieved Scale factor.
desiredRescaleFactorYThe real achieved Scale factor.
Returns
true if ok, false on errors.
bool te::rp::TiePointsLocatorMoravecStrategy::locateMoravecInterestPoints ( const unsigned int  maxInterestPoints,
const FloatsMatrix rasterData,
UCharsMatrix const *  maskRasterDataPtr,
InterestPointsSetT interestPoints 
) const
protected

Moravec interest points locator.

Parameters
maxInterestPointsThe maximum number of interest points to find.
rasterDataThe loaded 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).
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.
static void te::rp::TiePointsLocatorMoravecStrategy::locateMoravecInterestPointsThreadEntry ( MoravecLocatorThreadParams paramsPtr)
staticprotected

Movavec locator thread entry.

Parameters
paramsPtrA pointer to the thread parameters.
void te::rp::TiePointsLocatorMoravecStrategy::reset ( )
protectedvirtual

Clear all internal allocated resources and go back to the initial not-initialized state.

Implements te::rp::TiePointsLocatorStrategy.

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

RoolUp a buffer of lines.

Parameters
bufferPtrBuffer pointer.
bufferLinesNumberBuffer lines number.

Definition at line 290 of file TiePointsLocatorStrategy.h.

Friends And Related Function Documentation

Definition at line 47 of file TiePointsLocatorMoravecStrategy.h.

Member Data Documentation

te::rp::TiePointsLocatorInputParameters te::rp::TiePointsLocatorMoravecStrategy::m_inputParameters
protected

Input parameters.

Definition at line 163 of file TiePointsLocatorMoravecStrategy.h.

bool te::rp::TiePointsLocatorMoravecStrategy::m_isInitialized
protected

true if this instance is initialized.

Definition at line 161 of file TiePointsLocatorMoravecStrategy.h.


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