Tie-points locator SURF strategy. More...
#include <TiePointsLocatorSURFStrategy.h>
Classes | |
| class | ExecuteMatchingByEuclideanDistThreadEntryParams |
| The parameters passed to the executeMatchingByEuclideanDistThreadEntry method. More... | |
| class | Parameters |
| TiePointsLocator SURF strategy parameters. More... | |
| class | SurfLocatorThreadParams |
| The parameters passed to the surfLocatorThreadEntry method. More... | |
Public Member Functions | |
| void | getDefaultSpecStrategyParams (std::unique_ptr< TiePointsLocatorStrategyParameters > &defaultSpecParamsPtr) const |
| Returns a sub-sampled version of the given locator strategy specific input parameters. More... | |
| const std::string & | getErrorMessage () const |
| Return the current error message if there is any. More... | |
| void | getSubSampledSpecStrategyParams (const double subSampleOptimizationRescaleFactor, const TiePointsLocatorStrategyParameters &inputSpecParams, std::unique_ptr< TiePointsLocatorStrategyParameters > &subSampledSpecParamsPtr) const |
| Returns a sub-sampled version of the given locator strategy specific input parameters. More... | |
| ~TiePointsLocatorSURFStrategy () | |
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< InterestPointT > | InterestPointsListT |
| 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 | executeMatchingByEuclideanDist (const FloatsMatrix &featuresSet1, const FloatsMatrix &featuresSet2, const InterestPointsSetT &interestPointsSet1, const InterestPointsSetT &interestPointsSet2, te::gm::GeometricTransformation const *const raster1ToRaster2TransfPtr, const double raster1ToRaster2TransfDMapError, MatchedInterestPointsSetT &matchedPoints) |
| Match each feature using eucliean distance. 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 | locateSurfInterestPoints (const unsigned int maxInterestPoints, const FloatsMatrix &integralRasterData, UCharsMatrix const *maskRasterDataPtr, InterestPointsSetT &interestPoints) const |
| SURF interest points locator. More... | |
| void | reset () |
| Clear all internal allocated resources and go back to the initial not-initialized state. More... | |
| void | setErrorMessage (const std::string &newErrorMessage) |
| Set the current error message. More... | |
| TiePointsLocatorSURFStrategy () | |
Static Protected Member Functions | |
| static bool | checkForDuplicatedInterestPoints (const InterestPointsSetT &interestPoints, double &x, double &y) |
| Check for duplicated interest points. More... | |
| static bool | createIntegralImage (const FloatsMatrix &inputData, FloatsMatrix &outputData) |
| Create an integral image. More... | |
| static void | createTifFromMatrix (const FloatsMatrix &rasterData, const InterestPointsSetT &interestPoints, const std::string &tifFileName) |
| Moravec interest points locator. 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 | 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 ¢erX, const unsigned int ¢erY, 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 ¢erX, const unsigned int ¢erY, 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 ¢erX, const unsigned int ¢erY, 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 ¢erX, const unsigned int ¢erY, 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 ¢erX, const unsigned int ¢erY, 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 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 | locateSurfInterestPointsThreadEntry (SurfLocatorThreadParams *paramsPtr) |
| Surf 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... | |
Private Attributes | |
| std::string | m_errorMessage |
| Current error message. More... | |
Friends | |
| class | TiePointsLocatorSURFStrategyFactory |
Tie-points locator SURF strategy.
Definition at line 44 of file TiePointsLocatorSURFStrategy.h.
|
protectedinherited |
A matrix do store double values.
Definition at line 99 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
A matrix do store float values.
Definition at line 93 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
Interest points list container type
Definition at line 156 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
Interest points set container type
Definition at line 152 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
Matched interest points container type
Definition at line 199 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
A matrix do store unsigned char values.
Definition at line 105 of file TiePointsLocatorStrategy.h.
| te::rp::TiePointsLocatorSURFStrategy::~TiePointsLocatorSURFStrategy | ( | ) |
|
protected |
|
staticprotectedinherited |
Check for duplicated interest points.
| x | The duplicated tie-points X coord. |
| y | The duplicated tie-points Y coord. |
|
staticprotected |
Create an integral image.
| inputData | The input data. |
| outputData | The output data. |
|
staticprotectedinherited |
Moravec interest points locator.
| rasterData | The loaded raster data. |
| interestPoints | The found raster 1 interest points (coords related to rasterData lines/cols). |
| tifFileName | Tif file name. |
|
protected |
Match each feature using eucliean distance.
| featuresSet1 | Features set 1. |
| featuresSet2 | Features set 2. |
| interestPointsSet1 | The interest pionts set 1 (full raster 1 indexed coods reference).. |
| interestPointsSet2 | The interest pionts set 2 (full raster 1 indexed coods reference).. |
| raster1ToRaster2TransfPtr | A 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. |
| raster1ToRaster2TransfDMapError | The expected transformation error. |
| matchedPoints | The matched points. |
|
staticprotected |
Correlation/Euclidean match thread entry.
| paramsPtr | A pointer to the thread parameters. |
|
staticprotectedinherited |
Save the generated features to tif files.
| features | The features to be saved. |
| validInteresPoints | The interest pionts related to each feature inside the features matrix. |
| fileNameStart | The output file name beginning. |
|
staticprotected |
Generate a Surf features matrix for the given interes points.
| interestPoints | The interest points (coords related to rasterData lines/cols). |
| integralRasterData | The integral raster data. |
| validInterestPoints | The valid interest points. |
| features | The generated features matrix (one feature per line, one feature per interest point). |
|
protectedvirtual |
Returns a automatically calculated optimum maximum amount tie-points following the current parameters.
Implements te::rp::TiePointsLocatorStrategy.
|
virtual |
Returns a sub-sampled version of the given locator strategy specific input parameters.
| subSampleOptimizationRescaleFactor | Sub-sampled optimization tie-points search rescale factor. |
| inputSpecParams | Input parameters (sub-sample factor 1). |
| subSampledSpecParams | Sub-sampled parameters. |
Implements te::rp::TiePointsLocatorStrategy.
|
inherited |
Return the current error message if there is any.
|
inlinestaticprotected |
Return a Haar X intesity vector for the window centered at the given point.
| buffer | Integral image buffer. |
| centerX | Center X. |
| centerY | Center Y. |
| radius | Window radius. |
Definition at line 438 of file TiePointsLocatorSURFStrategy.h.
|
inlinestaticprotected |
Return a Haar Y intesity vector for the window centered at the given point.
| buffer | Integral image buffer. |
| centerX | Center X. |
| centerY | Center Y. |
| radius | Window radius. |
Definition at line 470 of file TiePointsLocatorSURFStrategy.h.
|
inlinestaticprotected |
Return a sum of all pixels inside a box over the given integral image buffer.
| bufferPtr | Buffer pointer. |
| upperLeftX | Box upper left X. |
| upperLeftY | Box upper left Y. |
| lowerRightX | Box lower right X. |
| lowerRightY | Box lower right X. |
Definition at line 301 of file TiePointsLocatorSURFStrategy.h.
|
protectedvirtual |
Try to find matched interest points.
| matchedInterestPoints | The matched interest points. |
| raster1ToRaster2TransfPtr | A 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. |
| raster1ToRaster2TransfDMapError | The expected transformation error. |
Implements te::rp::TiePointsLocatorStrategy.
|
virtual |
Returns a sub-sampled version of the given locator strategy specific input parameters.
| subSampleOptimizationRescaleFactor | Sub-sampled optimization tie-points search rescale factor. |
| inputSpecParams | Input parameters (sub-sample factor 1). |
| subSampledSpecParamsPtr | Sub-sampled parameters. |
Implements te::rp::TiePointsLocatorStrategy.
|
inlinestaticprotected |
Return a SURF box filter Dyy derivative centered over the given position from the given integral image buffer.
| bufferPtr | Buffer pointer. |
| centerX | Center X. |
| centerY | Center Y. |
| lobeWidth | Filter lobe width. |
| lobeRadius | Filter lobe radius. |
Definition at line 357 of file TiePointsLocatorSURFStrategy.h.
|
inlinestaticprotected |
Return a SURF box filter Dxy derivative centered over the given position from the given integral image buffer.
| bufferPtr | Buffer pointer. |
| centerX | Center X. |
| centerY | Center Y. |
| lobeWidth | Filter lobe width. |
Definition at line 388 of file TiePointsLocatorSURFStrategy.h.
|
inlinestaticprotected |
Return a SURF box filter Dxx derivative centered over the given position from the given integral image buffer.
| bufferPtr | Buffer pointer. |
| centerX | Center X. |
| centerY | Center Y. |
| lobeWidth | Filter lobe width. |
| lobeRadius | Filter lobe radius. |
Definition at line 324 of file TiePointsLocatorSURFStrategy.h.
|
inlinestaticprotected |
Return the surf octave filter size (width).
| octaveIndex | Octave index (starting from zero). |
| scaleIndex | Scale index (starting from zero). |
Definition at line 517 of file TiePointsLocatorSURFStrategy.h.
|
inlinestaticprotected |
Return the surf octave base filter size (width).
| octaveIndex | Octave index (starting from zero). |
Definition at line 505 of file TiePointsLocatorSURFStrategy.h.
|
inlinestaticprotected |
Return the surf octave filter step size (width).
| octaveIndex | Octave index (starting from zero). |
Definition at line 495 of file TiePointsLocatorSURFStrategy.h.
|
protectedvirtual |
Initialize the strategy.
| inputParameters | Input parameters. |
Implements te::rp::TiePointsLocatorStrategy.
|
staticprotectedinherited |
Load rasters data (normalized between 0 and 1).
| rasterPtr | Input raster pointer. |
| rasterBands | Input raster bands. |
| maskRasterPtr | The related input mask raster pointer (or zero, if no mask raster is avaliable). |
| maskRasterBand | The input mask raster band to use. |
| rasterTargetAreaLineStart | The raster target area initial line. |
| rasterTargetAreaColStart | The raster target area initial column. |
| rasterTargetAreaWidth | The raster target area width. |
| rasterTargetAreaHeight | The raster target area height. |
| desiredRescaleFactorX | The desired Scale factor to be applied on the loaded data. |
| desiredRescaleFactorY | The desired Scale factor to be applied on the loaded data. |
| rasterInterpMethod | The interpolation used when loading the input raster. |
| maxMemPercentUsage | The maximum amount (percent) of memory to use for the loaded data [0,100]. |
| loadedRasterData | The loaded raster data. |
| loadedMaskRasterData | The loaded mask raster data. |
| desiredRescaleFactorX | The real achieved Scale factor. |
| desiredRescaleFactorY | The real achieved Scale factor. |
|
protected |
SURF interest points locator.
| maxInterestPoints | The maximum number of interest points to find. |
| integralRasterData | Integral image raster data. |
| maskRasterDataPtr | The loaded mask raster data pointer (or zero if no mask is avaliable). |
| interestPoints | The found interest points (coords related to rasterData lines/cols). |
|
staticprotected |
Surf locator thread entry.
| paramsPtr | A pointer to the thread parameters. |
|
protectedvirtual |
Clear all internal allocated resources and go back to the initial not-initialized state.
Reimplemented from te::rp::TiePointsLocatorStrategy.
|
inlinestaticprotectedinherited |
RoolUp a buffer of lines.
| bufferPtr | Buffer pointer. |
| bufferLinesNumber | Buffer lines number. |
Definition at line 297 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
Set the current error message.
| newErrorMessage | New error message; |
|
friend |
Definition at line 46 of file TiePointsLocatorSURFStrategy.h.
|
privateinherited |
Current error message.
Definition at line 365 of file TiePointsLocatorStrategy.h.
|
protected |
Input parameters.
Definition at line 165 of file TiePointsLocatorSURFStrategy.h.
|
protected |
true if this instance is initialized.
Definition at line 163 of file TiePointsLocatorSURFStrategy.h.