Main MRPT website > C++ reference
MRPT logo
Typedefs | Functions
Multiresolution SIFTs (experimental)

Detailed Description

Collaboration diagram for Multiresolution SIFTs (experimental):

Typedefs

typedef map< int, map< int, map< int, deque< pair< TFeatureID, double > > > > > mrpt::vision::TQuantizationTable
 

Functions

void VISION_IMPEXP mrpt::vision::saveQTableToFile (const TQuantizationTable &qTable, const string &filename)
 
void VISION_IMPEXP mrpt::vision::insertHashCoeffs (const CFeaturePtr &feat, TQuantizationTable &qTable)
 
TMultiResMatchingOutput VISION_IMPEXP mrpt::vision::relocalizeMultiDesc (const CImage &image, CFeatureList &baseList, CFeatureList &currentList, TQuantizationTable &qTable, const TMultiResDescOptions &desc_opts, const TMultiResDescMatchOptions &match_opts)
 
void VISION_IMPEXP mrpt::vision::updateBaseList (CFeatureList &baseList, const CFeatureList &currentList, const vector< int > &idx)
 
void VISION_IMPEXP mrpt::vision::checkScalesAndFindMore (CMatchedFeatureList &baseList, const CFeatureList &currentList, const CImage &currentImage, const TMultiResMatchingOutput &output, const TMultiResDescOptions &computeOpts, const TMultiResDescMatchOptions &matchOpts)
 
bool VISION_IMPEXP mrpt::vision::computeGradient (const CImage &image, const unsigned int x, const unsigned int y, double &mag, double &ori)
 Computes the gradient of certain pixel within the image. More...
 
bool VISION_IMPEXP mrpt::vision::computeMainOrientations (const CImage &image, const unsigned int x, const unsigned int y, const unsigned int patchSize, std::vector< double > &orientations, const double &sigma)
 Computes the main orientations (within 80% of the peak value of orientation histogram) of a certain point within an image (for using in SIFT-based algorithms) More...
 
void VISION_IMPEXP mrpt::vision::interpolateHistEntry (vector< double > &hist, const double &cbin, const double &rbin, const double &obin, const double &mag, const int d, const int n)
 Inserts the orientation value of a certain pixel within the keypoint neighbourhood into the histogram of orientations. More...
 
void VISION_IMPEXP mrpt::vision::computeHistogramOfOrientations (const CImage &image, const unsigned int x, const unsigned int y, const unsigned int patchSize, const double &orientation, vector< int32_t > &descriptor, const TMultiResDescOptions &opts, vector< int32_t > &hashCoeffs)
 Computes the SIFT-like descriptor of a certain point within an image at the base scale, i.e. More...
 
TMultiResMatchingOutput VISION_IMPEXP mrpt::vision::matchMultiResolutionFeatures (const CFeatureList &list1, CFeatureList &list2, const CImage &rightImage, const TMultiResDescMatchOptions &matchOpts, const TMultiResDescOptions &computeOpts)
 Matches two CFeatureList containing mulit-resolution descriptors. More...
 
int VISION_IMPEXP mrpt::vision::matchMultiResolutionFeatures (CMatchedFeatureList &mList1, CMatchedFeatureList &mList2, const CImage &leftImage, const CImage &rightImage, const TMultiResDescMatchOptions &matchOpts, const TMultiResDescOptions &computeOpts)
 Matches two CMatchedFeatureList containing mulit-resolution descriptors. More...
 
int VISION_IMPEXP mrpt::vision::computeMoreDescriptors (const CImage &image, const CFeaturePtr &inputFeat, CFeaturePtr &outputFeat, const bool &lowerScales, const TMultiResDescOptions &opts)
 Computes more multi-resolution SIFT-like descriptors for a feature using its position in a new image. More...
 
void VISION_IMPEXP mrpt::vision::setProperScales (const CFeaturePtr &feat1, const CFeaturePtr &feat2, int &firstScale, int &lastScale)
 Computes the initial and final scales where to look when finding a match between multi-resolution features. More...
 
void VISION_IMPEXP mrpt::vision::computeMultiResolutionDescriptors (const CImage &imageLeft, const CImage &imageRight, CMatchedFeatureList &matchedFeats, const TMultiResDescOptions &opts)
 Computes the multi-resolution SIFT-like descriptor of a set of matched features. More...
 
bool VISION_IMPEXP mrpt::vision::computeMultiResolutionDescriptors (const CImage &image, CFeaturePtr &feat, const TMultiResDescOptions &opts)
 Computes the multi-resolution SIFT-like descriptor of a features. More...
 
vector< bool > VISION_IMPEXP mrpt::vision::computeMultiResolutionDescriptors (const CImage &image, CFeatureList &list, const TMultiResDescOptions &opts)
 Computes the multi-resolution SIFT-like descriptor of a list of features. More...
 
void VISION_IMPEXP mrpt::vision::computeMultiOrientations (const CImage &image, CFeatureList &list, const TMultiResDescOptions &opts)
 Computes the multi-resolution SIFT-like descriptor of a list of features. More...
 

Typedef Documentation

◆ TQuantizationTable

typedef map<int,map<int,map<int,deque<pair<TFeatureID, double> > > > > mrpt::vision::TQuantizationTable

Definition at line 69 of file multiDesc_utils.h.

Function Documentation

◆ checkScalesAndFindMore()

void VISION_IMPEXP mrpt::vision::checkScalesAndFindMore ( CMatchedFeatureList baseList,
const CFeatureList currentList,
const CImage currentImage,
const TMultiResMatchingOutput output,
const TMultiResDescOptions computeOpts,
const TMultiResDescMatchOptions matchOpts 
)

◆ computeGradient()

bool VISION_IMPEXP mrpt::vision::computeGradient ( const CImage image,
const unsigned int  x,
const unsigned int  y,
double &  mag,
double &  ori 
)

Computes the gradient of certain pixel within the image.

Parameters
image[IN] The input image.
x[IN] The 'x' coordinate of the image point.
y[IN] The 'y' coordinate of the image point.
mag[OUT] The magnitude of the gradient.
ori[OUT] The orientation of the gradient.
Returns
True if the gradient could be computed and False if the pixel is located outside the image or at its border (where the gradient cannot be computed)

◆ computeHistogramOfOrientations()

void VISION_IMPEXP mrpt::vision::computeHistogramOfOrientations ( const CImage image,
const unsigned int  x,
const unsigned int  y,
const unsigned int  patchSize,
const double &  orientation,
vector< int32_t > &  descriptor,
const TMultiResDescOptions opts,
vector< int32_t > &  hashCoeffs 
)

Computes the SIFT-like descriptor of a certain point within an image at the base scale, i.e.

its rotated orientation histogram.

Parameters
image[IN] The input image.
x[IN] The 'x' coordinate of the image point.
y[IN] The 'y' coordinate of the image point.
patchSize[IN] The size of the patch to be considered for computing the orientation histogram.
orientation[IN] The orientation considered for this point (used to rotate the patch).
orientation[OUT] The computed SIFT-like descriptor.
opts[IN] The options for computing the SIFT-like descriptor.
hashCoeffs[OUT] A vector containing the computed coefficients for the HASH table used in relocalization.
See also
TMultiResDescOptions

◆ computeMainOrientations()

bool VISION_IMPEXP mrpt::vision::computeMainOrientations ( const CImage image,
const unsigned int  x,
const unsigned int  y,
const unsigned int  patchSize,
std::vector< double > &  orientations,
const double &  sigma 
)

Computes the main orientations (within 80% of the peak value of orientation histogram) of a certain point within an image (for using in SIFT-based algorithms)

Parameters
image[IN] The input image.
x[IN] The 'x' coordinate of the image point.
y[IN] The 'y' coordinate of the image point.
patchSize[IN] The size of the patch to be considered for computing the orientation histogram.
orientations[OUT] A vector containing the main orientations of the image point.
sigma[IN] The sigma value of the Gaussian kernel used to smooth the orientation histogram (typically 7.5 px).

◆ computeMoreDescriptors()

int VISION_IMPEXP mrpt::vision::computeMoreDescriptors ( const CImage image,
const CFeaturePtr inputFeat,
CFeaturePtr outputFeat,
const bool &  lowerScales,
const TMultiResDescOptions opts 
)

Computes more multi-resolution SIFT-like descriptors for a feature using its position in a new image.

This is called when we have found a match between a feature and itself in a new frame but it has been found in a boundary scale. We now expand the range of scales, orientations and descriptors for that feature.

Parameters
image[IN] The new frame.
inputFeat[IN] The feature in the new frame.
outputFeat[OUT] The base feature (detected in the base frame).
lowerScales[IN] If we should find descriptors for lower scales or for higher ones.
opts[IN] The options for computing the new descriptors.

◆ computeMultiOrientations()

void VISION_IMPEXP mrpt::vision::computeMultiOrientations ( const CImage image,
CFeatureList list,
const TMultiResDescOptions opts 
)

Computes the multi-resolution SIFT-like descriptor of a list of features.

Parameters
image[IN] The input image.
list[IN/OUT] The list of features. They will be updated with the multi-scales, multi-orientations and multi-descriptors information.
opts[IN] The options structure for the descriptor computation process.
See also
TMultiResDescOptions

◆ computeMultiResolutionDescriptors() [1/3]

void VISION_IMPEXP mrpt::vision::computeMultiResolutionDescriptors ( const CImage imageLeft,
const CImage imageRight,
CMatchedFeatureList matchedFeats,
const TMultiResDescOptions opts 
)

Computes the multi-resolution SIFT-like descriptor of a set of matched features.

Parameters
imageLeft[IN] The input left image.
imageRight[IN] The input right image.
matchedFeats[IN/OUT] The list of matched features. They will be updated with the multi-scales, multi-orientations, multi-descriptors and depth information.
opts[IN] The options structure for the descriptor computation process.
See also
TMultiResDescOptions

◆ computeMultiResolutionDescriptors() [2/3]

bool VISION_IMPEXP mrpt::vision::computeMultiResolutionDescriptors ( const CImage image,
CFeaturePtr feat,
const TMultiResDescOptions opts 
)

Computes the multi-resolution SIFT-like descriptor of a features.

Parameters
image[IN] The input left image.
feat[IN/OUT] The feature. It will be updated with the multi-scales, multi-orientations, multi-descriptors
opts[IN] The options structure for the descriptor computation process.
See also
TMultiResDescOptions

◆ computeMultiResolutionDescriptors() [3/3]

vector<bool> VISION_IMPEXP mrpt::vision::computeMultiResolutionDescriptors ( const CImage image,
CFeatureList list,
const TMultiResDescOptions opts 
)

Computes the multi-resolution SIFT-like descriptor of a list of features.

Parameters
image[IN] The input image.
list[IN/OUT] The list of features. They will be updated with the multi-scales, multi-orientations and multi-descriptors information.
opts[IN] The options structure for the descriptor computation process.
See also
TMultiResDescOptions

◆ insertHashCoeffs()

void VISION_IMPEXP mrpt::vision::insertHashCoeffs ( const CFeaturePtr feat,
TQuantizationTable qTable 
)

◆ interpolateHistEntry()

void VISION_IMPEXP mrpt::vision::interpolateHistEntry ( vector< double > &  hist,
const double &  cbin,
const double &  rbin,
const double &  obin,
const double &  mag,
const int  d,
const int  n 
)

Inserts the orientation value of a certain pixel within the keypoint neighbourhood into the histogram of orientations.

This value can affect to more than one entry within the histogram.

Parameters
hist[IN/OUT] The histogram of orientations.
cbin[IN] The entry rotated column bin.
rbin[IN] The entry rotated row bin.
obin[IN] The entry rotated orientation bin.
mag[IN] The gradient magnitude value in the pixel.
d[IN] The number of row (and column) bins used in the histogram (typically 4).
n[IN] The number of orienation bins used in the histogram (typically 8).

◆ matchMultiResolutionFeatures() [1/2]

TMultiResMatchingOutput VISION_IMPEXP mrpt::vision::matchMultiResolutionFeatures ( const CFeatureList list1,
CFeatureList list2,
const CImage rightImage,
const TMultiResDescMatchOptions matchOpts,
const TMultiResDescOptions computeOpts 
)

Matches two CFeatureList containing mulit-resolution descriptors.

The first list is taken as a base, i.e. its features must contain multi-resolution descriptors at a set of different scales. The second list doesn't need to contain such information because it will be computed if necessary according to the the fulfillment of some restriction regarding the matching process. This function will try to find the best matches within list2 corresponding to the features within base list list1.

Parameters
list1[IN] The base list of features.
list2[IN/OUT] The other list of features.
rightImage[IN] The image from where the list2 was extracted. It's used to compute the descriptor of these features if necessary.
output[OUT] The output structure with the matching information.
matchOpts[IN] The options structure for the matching process.
computeOpts[IN] The options structure for the descriptor computation process.
Returns
A structure containing the results of the matching.
See also
TMultiResDescMatchOptions, TMultiResDescOptions, TMultiResMatchingOutput

◆ matchMultiResolutionFeatures() [2/2]

int VISION_IMPEXP mrpt::vision::matchMultiResolutionFeatures ( CMatchedFeatureList mList1,
CMatchedFeatureList mList2,
const CImage leftImage,
const CImage rightImage,
const TMultiResDescMatchOptions matchOpts,
const TMultiResDescOptions computeOpts 
)

Matches two CMatchedFeatureList containing mulit-resolution descriptors.

This is performed for both the "left" and "right" lists The first matched list is taken as a base, i.e. its features must contain multi-resolution descriptors at a set of different scales. The second list doesn't need to contain such information because it will be computed if necessary according to the the fulfillment of some restriction regarding the matching process. This function will try to find the best matches within list2 corresponding to the features

Parameters
mList1[IN] The base list.
mList2[IN] The other list of features.
leftImage[IN] The image from where the list2 was extracted. It's used to compute the descriptor of these features if necessary.
rightImage[IN] The image from where the list2 was extracted. It's used to compute the descriptor of these features if necessary.
matchOpts[IN] The options structure for the matching process.
computeOpts[IN] The options structure for the descriptor computation process.
Returns
The number of matches found
See also
TMultiResDescMatchOptions

◆ relocalizeMultiDesc()

TMultiResMatchingOutput VISION_IMPEXP mrpt::vision::relocalizeMultiDesc ( const CImage image,
CFeatureList baseList,
CFeatureList currentList,
TQuantizationTable qTable,
const TMultiResDescOptions desc_opts,
const TMultiResDescMatchOptions match_opts 
)

◆ saveQTableToFile()

void VISION_IMPEXP mrpt::vision::saveQTableToFile ( const TQuantizationTable qTable,
const string &  filename 
)

◆ setProperScales()

void VISION_IMPEXP mrpt::vision::setProperScales ( const CFeaturePtr feat1,
const CFeaturePtr feat2,
int &  firstScale,
int &  lastScale 
)

Computes the initial and final scales where to look when finding a match between multi-resolution features.

Both features must have their "depth" member properly computed.

Parameters
feat1[IN] The base feature which MUST contain a set of different scales.
feat2[IN] The other feature which must be computed at base scale (1.0).
firstScale[OUT] The initial scale (within [0 feat1->multiScale.size()-1]) where to look.
firstScale[OUT] The final scale (within [0 feat1->multiScale.size()-1]) where to look.

◆ updateBaseList()

void VISION_IMPEXP mrpt::vision::updateBaseList ( CFeatureList baseList,
const CFeatureList currentList,
const vector< int > &  idx 
)



Page generated by Doxygen 1.8.14 for MRPT 1.0.2 SVN: at lun oct 28 00:52:41 CET 2019 Hosted on:
SourceForge.net Logo