Tie-points locator SURF strategy. More...
#include <TiePointsLocatorSURFStrategy.h>
Classes | |
class | ExecuteMatchingByEuclideanDistThreadEntryParams |
The parameters passed to the executeMatchingByEuclideanDistThreadEntry method. More... | |
class | SurfLocatorThreadParams |
The parameters passed to the surfLocatorThreadEntry method. More... | |
Public Member Functions | |
~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) const |
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... | |
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... | |
Friends | |
class | TiePointsLocator |
Tie-points locator SURF strategy.
Definition at line 45 of file TiePointsLocatorSURFStrategy.h.
|
protectedinherited |
A matrix do store double values.
Definition at line 71 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
A matrix do store float values.
Definition at line 65 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
Interest points list container type
Definition at line 128 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
Interest points set container type
Definition at line 124 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
Matched interest points container type
Definition at line 171 of file TiePointsLocatorStrategy.h.
|
protectedinherited |
A matrix do store unsigned char values.
Definition at line 77 of file TiePointsLocatorStrategy.h.
te::rp::TiePointsLocatorSURFStrategy::~TiePointsLocatorSURFStrategy | ( | ) |
Definition at line 43 of file TiePointsLocatorSURFStrategy.cpp.
References reset().
|
protected |
Definition at line 38 of file TiePointsLocatorSURFStrategy.cpp.
References reset().
|
staticprotectedinherited |
Check for duplicated interest points.
x | The duplicated tie-points X coord. |
y | The duplicated tie-points Y coord. |
Definition at line 363 of file TiePointsLocatorStrategy.cpp.
Referenced by locateSurfInterestPointsThreadEntry().
|
staticprotected |
Create an integral image.
inputData | The input data. |
outputData | The output data. |
Definition at line 678 of file TiePointsLocatorSURFStrategy.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 getMatchedInterestPoints().
|
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. |
Definition at line 222 of file TiePointsLocatorStrategy.cpp.
References te::rst::BlueCInt, te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rst::GreenCInt, te::sa::Grid, te::rst::RasterFactory::make(), te::rst::RedCInt, TERP_TRUE_OR_THROW, and te::dt::UCHAR_TYPE.
|
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. |
Definition at line 1778 of file TiePointsLocatorSURFStrategy.cpp.
References executeMatchingByEuclideanDistThreadEntry(), te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::Matrix< TemplateElementType >::getMemPolicy(), te::common::GetPhysProcNumber(), te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_distMatrixPtr, te::rp::TiePointsLocatorInputParameters::m_enableMultiThread, te::rp::TiePointsLocatorStrategy::MatchedInterestPointsT::m_feature, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_featuresSet1Ptr, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_featuresSet2Ptr, m_inputParameters, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_interestPointsSet1Ptr, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_interestPointsSet2Ptr, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_nextFeatureIdx1ToProcessPtr, te::rp::TiePointsLocatorStrategy::MatchedInterestPointsT::m_point1, te::rp::TiePointsLocatorStrategy::MatchedInterestPointsT::m_point2, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_raster1ToRaster2TransfPtr, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_searchOptTreeSearchRadius, te::rp::TiePointsLocatorInputParameters::m_surfMaxNormEuclideanDist, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_syncMutexPtr, te::rp::Matrix< TemplateElementType >::RAMMemPol, te::rp::Matrix< TemplateElementType >::reset(), and TERP_TRUE_OR_RETURN_FALSE.
Referenced by getMatchedInterestPoints().
|
staticprotected |
Correlation/Euclidean match thread entry.
paramsPtr | A pointer to the thread parameters. |
Definition at line 1945 of file TiePointsLocatorSURFStrategy.cpp.
References te::gm::GeometricTransformation::clone(), 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::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_distMatrixPtr, te::rp::TiePointsLocatorStrategy::InterestPointT::m_feature2, te::rp::TiePointsLocatorStrategy::InterestPointT::m_feature3, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_featuresSet1Ptr, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_featuresSet2Ptr, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_interestPointsSet1Ptr, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_interestPointsSet2Ptr, te::gm::Envelope::m_llx, te::gm::Envelope::m_lly, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_nextFeatureIdx1ToProcessPtr, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_raster1ToRaster2TransfPtr, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_searchOptTreeSearchRadius, te::rp::TiePointsLocatorSURFStrategy::ExecuteMatchingByEuclideanDistThreadEntryParams::m_syncMutexPtr, te::gm::Envelope::m_urx, te::gm::Envelope::m_ury, te::rp::TiePointsLocatorStrategy::InterestPointT::m_x, te::rp::TiePointsLocatorStrategy::InterestPointT::m_y, te::rp::Matrix< TemplateElementType >::RAMMemPol, and te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::search().
Referenced by executeMatchingByEuclideanDist().
|
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. |
Definition at line 298 of file TiePointsLocatorStrategy.cpp.
References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::sa::Grid, te::rst::RasterFactory::make(), MAX, MIN, te::rst::RedCInt, TERP_TRUE_OR_THROW, and te::dt::UCHAR_TYPE.
|
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). |
Definition at line 1449 of file TiePointsLocatorSURFStrategy.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 getMatchedInterestPoints().
|
protectedvirtual |
Returns a automatically calculated optimum maximum amount tie-points following the current parameters.
Implements te::rp::TiePointsLocatorStrategy.
Definition at line 599 of file TiePointsLocatorSURFStrategy.cpp.
References getSurfFilterSize(), getSurfOctaveBaseFilterSize(), te::common::GetTotalPhysicalMemory(), te::common::GetTotalVirtualMemory(), te::common::GetUsedVirtualMemory(), m_inputParameters, m_isInitialized, te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaHeight, te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaWidth, te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaHeight, te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaWidth, te::rp::TiePointsLocatorInputParameters::m_subSampleOptimizationRescaleFactor, te::rp::TiePointsLocatorInputParameters::m_surfOctavesNumber, te::rp::TiePointsLocatorInputParameters::m_surfScalesNumber, and TERP_TRUE_OR_THROW.
Referenced by initialize().
|
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 396 of file TiePointsLocatorSURFStrategy.h.
Referenced by generateSurfFeatures().
|
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 428 of file TiePointsLocatorSURFStrategy.h.
Referenced by generateSurfFeatures().
|
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 259 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.
Definition at line 86 of file TiePointsLocatorSURFStrategy.cpp.
References createIntegralImage(), executeMatchingByEuclideanDist(), generateSurfFeatures(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::rp::TiePointsLocatorStrategy::loadRasterData(), locateSurfInterestPoints(), te::rp::TiePointsLocatorInputParameters::m_enableProgress, te::rp::TiePointsLocatorStrategy::MatchedInterestPointsT::m_feature, te::rp::TiePointsLocatorStrategy::InterestPointT::m_feature1, te::rp::TiePointsLocatorInputParameters::m_inMaskRaster1Ptr, te::rp::TiePointsLocatorInputParameters::m_inMaskRaster2Ptr, m_inputParameters, te::rp::TiePointsLocatorInputParameters::m_inRaster1Bands, te::rp::TiePointsLocatorInputParameters::m_inRaster1Ptr, te::rp::TiePointsLocatorInputParameters::m_inRaster2Bands, te::rp::TiePointsLocatorInputParameters::m_inRaster2Ptr, te::rp::TiePointsLocatorInputParameters::m_interpMethod, m_isInitialized, te::rp::TiePointsLocatorInputParameters::m_maxTiePoints, te::rp::TiePointsLocatorInputParameters::m_pixelSizeXRelation, te::rp::TiePointsLocatorInputParameters::m_pixelSizeYRelation, te::rp::TiePointsLocatorStrategy::MatchedInterestPointsT::m_point1, te::rp::TiePointsLocatorStrategy::MatchedInterestPointsT::m_point2, te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaColStart, te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaHeight, te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaLineStart, te::rp::TiePointsLocatorInputParameters::m_raster1TargetAreaWidth, te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaColStart, te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaHeight, te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaLineStart, te::rp::TiePointsLocatorInputParameters::m_raster2TargetAreaWidth, te::rp::TiePointsLocatorInputParameters::m_subSampleOptimizationRescaleFactor, te::rp::TiePointsLocatorStrategy::InterestPointT::m_x, te::rp::TiePointsLocatorStrategy::InterestPointT::m_y, and TERP_TRUE_OR_RETURN_FALSE.
|
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 315 of file TiePointsLocatorSURFStrategy.h.
Referenced by locateSurfInterestPointsThreadEntry().
|
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 346 of file TiePointsLocatorSURFStrategy.h.
Referenced by locateSurfInterestPointsThreadEntry().
|
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 282 of file TiePointsLocatorSURFStrategy.h.
Referenced by locateSurfInterestPointsThreadEntry().
|
inlinestaticprotected |
Return the surf octave filter size (width).
octaveIndex | Octave index (starting from zero). |
scaleIndex | Scale index (starting from zero). |
Definition at line 475 of file TiePointsLocatorSURFStrategy.h.
Referenced by getAutoMaxTiePointsNumber(), locateSurfInterestPoints(), and locateSurfInterestPointsThreadEntry().
|
inlinestaticprotected |
Return the surf octave base filter size (width).
octaveIndex | Octave index (starting from zero). |
Definition at line 463 of file TiePointsLocatorSURFStrategy.h.
Referenced by getAutoMaxTiePointsNumber().
|
inlinestaticprotected |
Return the surf octave filter step size (width).
octaveIndex | Octave index (starting from zero). |
Definition at line 453 of file TiePointsLocatorSURFStrategy.h.
|
protectedvirtual |
Initialize the strategy.
inputParameters | Input parameters. |
Implements te::rp::TiePointsLocatorStrategy.
Definition at line 48 of file TiePointsLocatorSURFStrategy.cpp.
References getAutoMaxTiePointsNumber(), m_inputParameters, te::rp::TiePointsLocatorInputParameters::m_inRaster1Bands, te::rp::TiePointsLocatorInputParameters::m_inRaster2Bands, m_isInitialized, te::rp::TiePointsLocatorInputParameters::m_maxTiePoints, te::rp::TiePointsLocatorInputParameters::m_surfMaxNormEuclideanDist, te::rp::TiePointsLocatorInputParameters::m_surfOctavesNumber, te::rp::TiePointsLocatorInputParameters::m_surfScalesNumber, and TERP_TRUE_OR_RETURN_FALSE.
|
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. |
Definition at line 54 of file TiePointsLocatorStrategy.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(), te::rp::TiePointsLocatorStrategy::reset(), and TERP_TRUE_OR_RETURN_FALSE.
Referenced by te::rp::TiePointsLocatorMoravecStrategy::getMatchedInterestPoints(), and getMatchedInterestPoints().
|
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). |
Definition at line 708 of file TiePointsLocatorSURFStrategy.cpp.
References te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), te::common::GetPhysProcNumber(), getSurfFilterSize(), locateSurfInterestPointsThreadEntry(), te::rp::TiePointsLocatorInputParameters::m_enableMultiThread, m_inputParameters, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_integralRasterDataPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_interestPointsAccessMutexPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_interestPointsSubSectorsPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_maskRasterDataPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_maxInterestPointsBySubSector, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_nextRasterLinesBlockToProcessValuePtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_octavesNumber, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_processingBlocksNumber, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_rastaDataAccessMutexPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_returnValuePtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_scalesNumber, te::rp::TiePointsLocatorInputParameters::m_surfOctavesNumber, te::rp::TiePointsLocatorInputParameters::m_surfScalesNumber, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_tiePointsSubSectorsSplitFactor, and te::rp::TiePointsLocatorInputParameters::m_tiePointsSubSectorsSplitFactor.
Referenced by getMatchedInterestPoints().
|
staticprotected |
Surf locator thread entry.
paramsPtr | A pointer to the thread parameters. |
Definition at line 791 of file TiePointsLocatorSURFStrategy.cpp.
References te::rp::TiePointsLocatorStrategy::checkForDuplicatedInterestPoints(), te::rp::Matrix< TemplateElementType >::getColumnsNumber(), te::rp::Matrix< TemplateElementType >::getLinesNumber(), getSurfDxxDerivative(), getSurfDxyDerivative(), getSurfDyyDerivative(), getSurfFilterSize(), insert(), te::rp::TiePointsLocatorStrategy::InterestPointT::m_feature1, te::rp::TiePointsLocatorStrategy::InterestPointT::m_feature2, te::rp::TiePointsLocatorStrategy::InterestPointT::m_feature3, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_integralRasterDataPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_interestPointsAccessMutexPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_interestPointsSubSectorsPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_maskRasterDataPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_maxInterestPointsBySubSector, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_nextRasterLinesBlockToProcessValuePtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_octavesNumber, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_processingBlocksNumber, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_rastaDataAccessMutexPtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_returnValuePtr, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_scalesNumber, te::rp::TiePointsLocatorSURFStrategy::SurfLocatorThreadParams::m_tiePointsSubSectorsSplitFactor, te::rp::TiePointsLocatorStrategy::InterestPointT::m_x, te::rp::TiePointsLocatorStrategy::InterestPointT::m_y, te::rp::Matrix< TemplateElementType >::RAMMemPol, te::rp::Matrix< TemplateElementType >::reset(), te::rp::TiePointsLocatorStrategy::roolUpBuffer(), and TERP_TRUE_OR_THROW.
Referenced by locateSurfInterestPoints().
|
protectedvirtual |
Clear all internal allocated resources and go back to the initial not-initialized state.
Implements te::rp::TiePointsLocatorStrategy.
Definition at line 80 of file TiePointsLocatorSURFStrategy.cpp.
References m_inputParameters, m_isInitialized, and te::rp::TiePointsLocatorInputParameters::reset().
Referenced by TiePointsLocatorSURFStrategy(), and ~TiePointsLocatorSURFStrategy().
|
inlinestaticprotectedinherited |
RoolUp a buffer of lines.
bufferPtr | Buffer pointer. |
bufferLinesNumber | Buffer lines number. |
Definition at line 269 of file TiePointsLocatorStrategy.h.
Referenced by te::rp::TiePointsLocatorMoravecStrategy::locateMoravecInterestPointsThreadEntry(), and locateSurfInterestPointsThreadEntry().
|
friend |
Definition at line 47 of file TiePointsLocatorSURFStrategy.h.
|
protected |
Input parameters.
Definition at line 123 of file TiePointsLocatorSURFStrategy.h.
Referenced by executeMatchingByEuclideanDist(), getAutoMaxTiePointsNumber(), getMatchedInterestPoints(), initialize(), locateSurfInterestPoints(), and reset().
|
protected |
true if this instance is initialized.
Definition at line 121 of file TiePointsLocatorSURFStrategy.h.
Referenced by getAutoMaxTiePointsNumber(), getMatchedInterestPoints(), initialize(), and reset().