MRPT  2.0.2
Classes | Typedefs | Functions
Feature detection, descriptors and matching

Detailed Description

Collaboration diagram for Feature detection, descriptors and matching:

Classes

class  mrpt::vision::CFeature
 A generic 2D feature from an image, extracted with CFeatureExtraction Each feature may have one or more descriptors (see descriptors), in addition to an image patch. More...
 
class  mrpt::vision::CFeatureList
 A list of visual features, to be used as output by detectors, as input/output by trackers, etc. More...
 
class  mrpt::vision::CMatchedFeatureList
 A list of features. More...
 
class  mrpt::vision::CFeatureExtraction
 The central class from which images can be analyzed in search of different kinds of interest points and descriptors computed for them. More...
 
struct  mrpt::vision::TKeyPoint_templ< PIXEL_COORD_TYPE >
 Simple structure for image key points. More...
 
struct  mrpt::vision::TKeyPointTraits< FEATURE >
 
struct  mrpt::vision::TKeyPointTraits< TKeyPoint >
 
struct  mrpt::vision::TKeyPointTraits< TKeyPointf >
 
struct  mrpt::vision::TKeyPointList_templ< FEATURE >
 A list of image features using the structure TKeyPoint for each feature Users normally will use directly: TKeyPointList, TKeyPointfList. More...
 
struct  mrpt::vision::KeypointResponseSorter< FEATURE_LIST >
 A helper struct to sort keypoints by their response: It can be used with these types: More...
 
class  mrpt::vision::CFeatureListKDTree< FEAT >
 Helper class: KD-tree search class for vector<KeyPoint>: Call mark_as_outdated() to force rebuilding the kd-tree after modifying the linked feature list. More...
 

Typedefs

using mrpt::vision::TKeyPoint = TKeyPoint_templ< mrpt::img::TPixelCoord >
 Simple structure for image key points. More...
 
using mrpt::vision::TKeyPointf = TKeyPoint_templ< mrpt::img::TPixelCoordf >
 A version of TKeyPoint with subpixel precision. More...
 
using mrpt::vision::TKeyPointList = TKeyPointList_templ< TKeyPoint >
 A list of image features using the structure TKeyPoint for each feature. More...
 
using mrpt::vision::TKeyPointfList = TKeyPointList_templ< TKeyPointf >
 A list of image features using the structure TKeyPointf for each feature - capable of KD-tree computations. More...
 

Functions

template<class DESCRIPTOR_KDTREE >
size_t mrpt::vision::find_descriptor_pairings (std::vector< std::vector< size_t >> *pairings_1_to_multi_2, std::vector< std::pair< size_t, size_t >> *pairings_1_to_2, const CFeatureList &feats_img1, const DESCRIPTOR_KDTREE &feats_img2_kdtree, const mrpt::vision::TDescriptorType descriptor=descSIFT, const size_t max_neighbors=4, const double max_relative_distance=1.2, const typename DESCRIPTOR_KDTREE::kdtree_t::DistanceType max_distance=std::numeric_limits< typename DESCRIPTOR_KDTREE::kdtree_t::DistanceType >::max())
 Search for pairings between two sets of visual descriptors (for now, only SURF and SIFT features are considered). More...
 

Typedef Documentation

◆ TKeyPoint

Simple structure for image key points.

See also
TKeyPointf, CFeature, TKeyPointList

Definition at line 78 of file TKeyPoint.h.

◆ TKeyPointf

A version of TKeyPoint with subpixel precision.

Definition at line 81 of file TKeyPoint.h.

◆ TKeyPointfList

A list of image features using the structure TKeyPointf for each feature - capable of KD-tree computations.

Definition at line 275 of file TKeyPoint.h.

◆ TKeyPointList

A list of image features using the structure TKeyPoint for each feature.

  • capable of KD-tree computations

Definition at line 271 of file TKeyPoint.h.

Function Documentation

◆ find_descriptor_pairings()

template<class DESCRIPTOR_KDTREE >
size_t mrpt::vision::find_descriptor_pairings ( std::vector< std::vector< size_t >> *  pairings_1_to_multi_2,
std::vector< std::pair< size_t, size_t >> *  pairings_1_to_2,
const CFeatureList feats_img1,
const DESCRIPTOR_KDTREE &  feats_img2_kdtree,
const mrpt::vision::TDescriptorType  descriptor = descSIFT,
const size_t  max_neighbors = 4,
const double  max_relative_distance = 1.2,
const typename DESCRIPTOR_KDTREE::kdtree_t::DistanceType  max_distance = std::numeric_limits< typename DESCRIPTOR_KDTREE::kdtree_t::DistanceType>::max() 
)

Search for pairings between two sets of visual descriptors (for now, only SURF and SIFT features are considered).

Pairings are returned in one of two formats (or both of them simultaneously), depending on the non-NULL output containers present in the call.

CFeatureList feats1, feats2;
// Populate feature lists [...]
// Create kd-tree for SIFT features of "feats2":
TSIFTDescriptorsKDTreeIndex<double> feats2_kdtree(feats2);
// Search correspondences:
std::vector<std::vector<size_t>> pairings_1_to_multi_2;
std::vector<std::pair<size_t,size_t> > pairings_1_to_2;
&pairings_1_to_multi_2, // Can be set to nullptr if not needed
&pairings_1_to_2, // Can be set to nullptr if not needed
feats1, feats2_kdtree, // The two sets of features
mrpt::vision::descSIFT // Select descriptor to use
// [further optional params]
);
See also
TSIFTDescriptorsKDTreeIndex, TSURFDescriptorsKDTreeIndex

The expected data type of elements for the kd-tree

Definition at line 48 of file descriptor_pairing.h.

References ASSERT_, ASSERT_ABOVEEQ_, ASSERTMSG_, mrpt::vision::descSIFT, mrpt::vision::descSURF, MRPT_END, MRPT_START, mrpt::vision::CFeature::TDescriptors::SIFT, mrpt::vision::CFeatureList::size(), mrpt::vision::CFeature::TDescriptors::SURF, and THROW_EXCEPTION.

Here is the call graph for this function:



Page generated by Doxygen 1.8.14 for MRPT 2.0.2 Git: 9b4fd2465 Mon May 4 16:59:08 2020 +0200 at lun may 4 17:26:07 CEST 2020