Class EnforceUniqueByScore<Desc,A extends Associate<Desc>>

java.lang.Object
boofcv.abst.feature.associate.EnforceUniqueByScore<Desc,A>
All Implemented Interfaces:
Associate<Desc>
Direct Known Subclasses:
EnforceUniqueByScore.Describe, EnforceUniqueByScore.Describe2D

public class EnforceUniqueByScore<Desc,A extends Associate<Desc>> extends Object implements Associate<Desc>

Ensures that the source and/or destination features are uniquely associated by resolving ambiguity using association score and preferring matches with better scores.

NOTE: Unassociated matches are recomputed from scratch. It could potentially add to the list created by the original algorithm for a bit more efficiency.

See Also:
  • Field Details

  • Constructor Details

    • EnforceUniqueByScore

      public EnforceUniqueByScore(A association, boolean checkSource, boolean checkDestination)
      Configures the algorithm to ensure source and/or destination features are unique. The uniqueness of the input algorithm is checked and if it is already unique it that processing step will be skipped.
      Parameters:
      association - The association algorithm which is being wrapped
      checkSource - Should source features be unique
      checkDestination - Should destination features be unique
  • Method Details

    • associate

      public void associate()
      Description copied from interface: Associate
      Finds the best match for each item in the source list with an item in the destination list.
      Specified by:
      associate in interface Associate<Desc>
    • getMatches

      public FastAccess<AssociatedIndex> getMatches()
      Description copied from interface: Associate
      List of associated features. Indexes refer to the index inside the input lists.
      Specified by:
      getMatches in interface Associate<Desc>
      Returns:
      List of associated features.
    • getUnassociatedSource

      public DogArray_I32 getUnassociatedSource()
      Description copied from interface: Associate
      Indexes of features in the source set which are not associated. WARNING: In some implementations the unassociated list is recomputed each time this function is invoked. In other implementations it was found virtually for free while the matches are found.
      Specified by:
      getUnassociatedSource in interface Associate<Desc>
      Returns:
      List of unassociated source features by index.
    • getUnassociatedDestination

      public DogArray_I32 getUnassociatedDestination()
      Description copied from interface: Associate
      Indexes of features in the destination set which are not associated. WARNING: In some implementations the unassociated list is recomputed each time this function is invoked. In other implementations it was found virtually for free while the matches are found.
      Specified by:
      getUnassociatedDestination in interface Associate<Desc>
      Returns:
      List of unassociated destination features by index.
    • setMaxScoreThreshold

      public void setMaxScoreThreshold(double score)
      Description copied from interface: Associate
      Associations are only considered if their score is less than or equal to the specified threshold. To remove any threshold test set this value to Double.MAX_VALUE
      Specified by:
      setMaxScoreThreshold in interface Associate<Desc>
      Parameters:
      score - The threshold.
    • getScoreType

      public MatchScoreType getScoreType()
      Description copied from interface: Associate
      Specifies the type of score which is returned.
      Specified by:
      getScoreType in interface Associate<Desc>
      Returns:
      Type of association score.
    • uniqueSource

      public boolean uniqueSource()
      Description copied from interface: Associate
      If at most one match is returned for each source feature.
      Specified by:
      uniqueSource in interface Associate<Desc>
      Returns:
      true for unique source association
    • uniqueDestination

      public boolean uniqueDestination()
      Description copied from interface: Associate
      If at most one match is returned for each destination feature.
      Specified by:
      uniqueDestination in interface Associate<Desc>
      Returns:
      true for unique destination association
    • getDescriptionType

      public Class<Desc> getDescriptionType()
      Description copied from interface: Associate
      Returns the type of object it can associate
      Specified by:
      getDescriptionType in interface Associate<Desc>