Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends
jafar::gfm::GroupsMatcher Class Reference

This class implements a variation of Jung group matching algorithm. More...


Detailed Description

This class implements a variation of Jung group matching algorithm.

Definition at line 25 of file GroupsMatcher.hpp.

#include <GroupsMatcher.hpp>

Inheritance diagram for jafar::gfm::GroupsMatcher:
Inheritance graph
[legend]

List of all members.

Classes

class  Group
struct  GroupMatchHypothesis
class  GroupsMatchSourceInfo
struct  InterestFeatureInfo

Public Member Functions

 GroupsMatcher (MatchFocus *matchFocus=0, unsigned int groupsize=12, unsigned int groupsizeseedsearch=12, unsigned int minimalgroupsize=2, double distance=20.0, double closeness=0.6, double weakcloseness=0.6, double distinguability=0.1, double rotationTolerance=0.2, double scaleTolerance=10000.0, double distanceTolerance=10.0, double rotationDifferenceWithMedian=0.4, double thresholdofenoughtgroup=0.)
 GroupsMatcher (GroupsMatcher const &gm)
GroupsMatcheroperator= (GroupsMatcher const &m)
virtual jafar::gfm::MatchingResult computeMatch (MatchSourceInfo *refsourceinfo, MatchSourceInfo *matchsourceinfo)
 Compute the matching between two sources of information.
virtual MatchSourceInfoinitMatchSourceInfo (const jafar::fdetect::DetectionResult &pointsource)
 Create the MatchSourceInfo from a vector of interest points.
void setMatchFocus (MatchFocus *matchFocus)

Private Types

typedef std::vector
< InterestFeatureInfo * > 
vInterestFeatureInfos
typedef
vInterestFeatureInfos::iterator 
vInterestFeatureInfos_it
typedef
vInterestFeatureInfos::const_iterator 
vInterestFeatureInfos_cit
typedef std::map< double,
InterestFeatureInfo * > 
double2interestPointInfo
typedef std::pair
< InterestFeatureInfo
*, InterestFeatureInfo * > 
pIpInfoIpInfo
typedef std::vector
< pIpInfoIpInfo > 
vpIpInfoIpInfos
typedef std::vector< Group * > vGroups
typedef vGroups::iterator vGroups_it
typedef std::pair
< Group::GroupMember,
Group::GroupMember
pGrpMembGrMemb
typedef std::vector
< pGrpMembGrMemb > 
vpGrpMembGrMembs
typedef vpGrpMembGrMembs::iterator vpGrpMembGrMembs_it

Private Member Functions

GroupMatchHypothesissearchBestMatchFor (Group *groupref, vGroups &groupsmatch)
void propageMatching (vInterestFeatureInfos &matches, InterestFeatureInfo *startingpoint, GroupMatchHypothesis *hypothesis)
void initiatePropagation (vInterestFeatureInfos &matches, GroupMatchHypothesis *match, vpGrpMembGrMembs individualmatches)
template<class Archive >
void serialize (Archive &ar, const unsigned int version)

Private Attributes

int md_currentnumberofmatch
 Number of points in a group.

Friends

class boost::serialization::access
 !! nizar 20100912 : serialization stuff
std::ostream & operator<< (std::ostream &s, const GroupsMatcher::InterestFeatureInfo &p_)
std::ostream & operator<< (std::ostream &s, const GroupsMatcher::Group::GroupMember &p_)
std::ostream & operator<< (std::ostream &s, const GroupsMatcher::Group &p_)
std::ostream & operator<< (std::ostream &s, const GroupsMatcher::GroupsMatchSourceInfo &p_)

Constructor & Destructor Documentation

jafar::gfm::GroupsMatcher::GroupsMatcher ( MatchFocus matchFocus = 0,
unsigned int  groupsize = 12,
unsigned int  groupsizeseedsearch = 12,
unsigned int  minimalgroupsize = 2,
double  distance = 20.0,
double  closeness = 0.6,
double  weakcloseness = 0.6,
double  distinguability = 0.1,
double  rotationTolerance = 0.2,
double  scaleTolerance = 10000.0,
double  distanceTolerance = 10.0,
double  rotationDifferenceWithMedian = 0.4,
double  thresholdofenoughtgroup = 0. 
) [inline]
Parameters:
groupsizethe maximum numbers of interest points in a group
groupsizeseedsearchnumber of neighbourgh interest points of a group used to compute the first match
minimalgroupsizethe minimum numbers of interest points in a valid group
distancethe maximum distance between the center of a group and the other members (we use norm 1)
closenessthe threshold above which we can consider that two descriptors are describing the same interest point (maximum value is 1.0)
weakclosenessthe threshold for the comparison of the weakComparison (maximum value is 1.0)
distinguabilitythe distinguability is use when we search the first match (the seed) to determine if two hypothesis are different enough
rotationTolerancethe tolerance on the change of rotation in a group between reference and match
scaleTolerancethe tolerance on the change of scale in a group between reference and match
distanceTolerancethe tolerance of change in the translation vetween ref and match when trying to restart a propagation after running the tree has stop
rotationDifferenceWithMedianonce we have tried to match all group, we compute the median of the rotation to eliminate the outliers
thresholdofenoughtgroupdetermine the minimum number of group left below which we won't try to find a new seed when the propagation is stopped (between 0.0 and 1.0, note with 0.0 no seed will ever be searched)
matchFocusthis object will control the

Definition at line 131 of file GroupsMatcher.hpp.


Member Data Documentation

Number of points in a group.

Set the minimal number of points needed to make a group. Define the distance Set the threshold on the comparison of descriptor

Definition at line 201 of file GroupsMatcher.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:38 for Jafar by doxygen 1.7.6.1
LAAS-CNRS