ImFusion C++ SDK 4.5.0
ImFusion::FeatureDetectionAlgorithm Class Reference

#include <ImFusion/Vision/FeatureDetectionAlgorithm.h>

Feature detection algorithm. More...

Inheritance diagram for ImFusion::FeatureDetectionAlgorithm:

Detailed Description

Feature detection algorithm.

Public Member Functions

 FeatureDetectionAlgorithm (SharedImageSet *images)
 Constructs the feature detection algorithm.
 ~FeatureDetectionAlgorithm () override
 Destroys the feature detection algorithm.
OwningDataList takeOutput () override
 Provides an access to the output.
SharedImageSet * images () const
 Provides an access to the set of images to process.
SharedImageSet * matchImages () const
 Provides an access to the set of images that shows the matches.
std::vector< std::vector< vec3 > > detectedPoints () const
 Provides and access to the detected points per image in world coordinates.
std::vector< std::vector< Keypoint > > detectedFeatures () const
 Provides an access to the detected features per image.
FeatureDetector * detector () const
 Provides an access to the feature detector.
FeatureMatcher * matcher () const
 Provides an access to the feature matcher.
FeatureMatchPruner * pruner () const
 Provides an access to the feature match pruner.
std::vector< std::vector< FeatureMatch > > detectedMatches () const
 Provides an access to the detected matches.
void compute () override
 Computes the feature detection algorithm.
void configure (const Properties *p) override
 Configures the algorithm with the given properties.
void configuration (Properties *p) const override
 Provides an access to the configuration.
Public Member Functions inherited from ImFusion::Algorithm
 Algorithm ()
 Default constructor will registers a single "compute" action that calls compute() and returns status().
virtual void setProgress (Progress *progress)
 Sets a Progress interface the algorithm can use to notify observers about its computing progress.
Progress * progress () const
 Returns the progress interface if set.
virtual int status () const
 Indicates the status of the last call to compute().
virtual bool survivesDataDeletion (const Data *) const
 Indicates whether the algorithm can handle (partial) deletion of the specified data, by default this checks whether the data is in the input list.
const FactoryInfo & factoryInfo () const
 Returns the record describing how this Algorithm was instantiated by the AlgorithmFactory.
void setFactoryInfo (const FactoryInfo &value)
 Sets the record describing how this Algorithm was instantiated by the AlgorithmFactory.
Status runAction (const std::string &id)
 Run the action with name id if it exists.
const std::vector< Action > & actions ()
 Get a mapping from Action id to Action as registered in this algorithm.
Public Member Functions inherited from ImFusion::Configurable
virtual void configureDefaults ()
 Retrieve the properties of this object, replaces values with their defaults and sets it again.
void registerParameter (ParameterBase *param)
 Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration().
void unregisterParameter (const ParameterBase *param)
 Remove the given Parameter or SubProperty from the list of registered parameters.
 Configurable (const Configurable &rhs)
 Configurable (Configurable &&rhs) noexcept
Configurable & operator= (const Configurable &)
Configurable & operator= (Configurable &&) noexcept

Static Public Member Functions

static bool createCompatible (const DataList &data, Algorithm **a=0)
 Checker for the compatibility of the algorithm with the given data.
Static Public Member Functions inherited from ImFusion::Algorithm
static bool createCompatible (const DataList &data, Algorithm **a=nullptr)
 Factory function to check algorithm compatibility with input data and optionally instantiate it.

Public Attributes

Parameter< std::string > p_detectorName
 Possible values are the detectors registered in the FeatureDetectorFactory.
Parameter< std::string > p_samplerName
 Possible values are the samplers registered in the FeatureSamplerFactory.
Parameter< bool > p_matchFeatures = {"Match features", false, this}
Parameter< std::string > p_matcherName
 Possible values are the matchers registered in the FeatureMatcherFactory.
Parameter< bool > p_matchSequentially = {"Match sequentially", false, this}
Parameter< vec2i > p_imagesToMatch = {"Images to match", vec2i(0, 1), this}
Parameter< std::string > p_prunerName
 Possible values are the pruners registered in the FeatureMatchPrunerFactory.
Public Attributes inherited from ImFusion::Algorithm
Signal signalOutputChanged
 Signal should be emitted by Algorithms when their output/result has changed.
Signal signalParametersChanged
 Signal should be emitted by Algorithms when their parameter configuration has changed.
Public Attributes inherited from ImFusion::Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.

Additional Inherited Members

Public Types inherited from ImFusion::Algorithm
enum  Status {
  Unknown = -1 , Success = 0 , Error = 1 , InvalidInput ,
  IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU ,
  UnknownAction , AbortedByUser , User = 1000
}
 Status codes. More...
Protected Member Functions inherited from ImFusion::Algorithm
void loadDefaults ()
void registerAction (const std::string &id, const std::string &guiName, const std::function< Algorithm::Status(void)> &action)
 Register an action to be run via runAction.
template<typename D>
void registerAction (const std::string &id, const std::string &guiName, Algorithm::Status(D::*action)(void))
 Template version of runAction that can be used with a pointer to a member function.
void registerAction (const Action &action)
 Register an action.
Protected Attributes inherited from ImFusion::Algorithm
std::string m_name
 Algorithm name.
Progress * m_progress = nullptr
 Non-owing pointer to a progress interface. May be a nullptr.
FactoryInfo m_factoryInfo = {}
 Record describing how this algorithm was instantiated by the AlgorithmFactory.
int m_status = Status::Unknown
 Algorithm status after last call to compute().
std::vector< Action > m_actions
 Map of key given by the id of the action, of the available actions of this algorithm.
Protected Attributes inherited from ImFusion::Configurable
std::vector< Param > m_params
 List of all registered Parameter and SubProperty instances.

Constructor & Destructor Documentation

◆ FeatureDetectionAlgorithm()

ImFusion::FeatureDetectionAlgorithm::FeatureDetectionAlgorithm ( SharedImageSet * images)

Constructs the feature detection algorithm.

Parameters
imagesThe set of images to process

Member Function Documentation

◆ createCompatible()

bool ImFusion::FeatureDetectionAlgorithm::createCompatible ( const DataList & data,
Algorithm ** a = 0 )
static

Checker for the compatibility of the algorithm with the given data.

Returns
True if the algorithm is compatible with the data, false otherwise

◆ takeOutput()

OwningDataList ImFusion::FeatureDetectionAlgorithm::takeOutput ( )
overridevirtual

Provides an access to the output.

Returns
The output data

Reimplemented from ImFusion::Algorithm.

◆ images()

SharedImageSet * ImFusion::FeatureDetectionAlgorithm::images ( ) const

Provides an access to the set of images to process.

Returns
The set of images to process

◆ matchImages()

SharedImageSet * ImFusion::FeatureDetectionAlgorithm::matchImages ( ) const
inline

Provides an access to the set of images that shows the matches.

Returns
The set of images that shows the matches

◆ detectedPoints()

std::vector< std::vector< vec3 > > ImFusion::FeatureDetectionAlgorithm::detectedPoints ( ) const

Provides and access to the detected points per image in world coordinates.

Returns
Vector of detected points per image in world coordinates

◆ detectedFeatures()

std::vector< std::vector< Keypoint > > ImFusion::FeatureDetectionAlgorithm::detectedFeatures ( ) const
inline

Provides an access to the detected features per image.

Returns
Vector of detected features per image

◆ detector()

FeatureDetector * ImFusion::FeatureDetectionAlgorithm::detector ( ) const
inline

Provides an access to the feature detector.

Returns
The feature detector used in the algorithm

◆ matcher()

FeatureMatcher * ImFusion::FeatureDetectionAlgorithm::matcher ( ) const
inline

Provides an access to the feature matcher.

Returns
The feature matcher used in the algorithm

◆ pruner()

FeatureMatchPruner * ImFusion::FeatureDetectionAlgorithm::pruner ( ) const
inline

Provides an access to the feature match pruner.

Returns
The feature match pruner used in the algorithm

◆ detectedMatches()

std::vector< std::vector< FeatureMatch > > ImFusion::FeatureDetectionAlgorithm::detectedMatches ( ) const
inline

Provides an access to the detected matches.

Returns
The detected matches

◆ compute()

void ImFusion::FeatureDetectionAlgorithm::compute ( )
overridevirtual

Computes the feature detection algorithm.

Implements ImFusion::Algorithm.

◆ configure()

void ImFusion::FeatureDetectionAlgorithm::configure ( const Properties * p)
overridevirtual

Configures the algorithm with the given properties.

Parameters
pThe properties to configure the algorithm with

Reimplemented from ImFusion::Configurable.

◆ configuration()

void ImFusion::FeatureDetectionAlgorithm::configuration ( Properties * p) const
overridevirtual

Provides an access to the configuration.

Parameters
pThe properties to configure the algorithm with

Reimplemented from ImFusion::Configurable.

Member Data Documentation

◆ p_detectorName

Parameter<std::string> ImFusion::FeatureDetectionAlgorithm::p_detectorName
Initial value:
= {"Feature detector",
"",
this}

Possible values are the detectors registered in the FeatureDetectorFactory.

◆ p_samplerName

Parameter<std::string> ImFusion::FeatureDetectionAlgorithm::p_samplerName
Initial value:
= {"Feature sampler",
"",
this}

Possible values are the samplers registered in the FeatureSamplerFactory.

◆ p_matcherName

Parameter<std::string> ImFusion::FeatureDetectionAlgorithm::p_matcherName
Initial value:
= {"Feature matcher",
"",
this}

Possible values are the matchers registered in the FeatureMatcherFactory.

◆ p_prunerName

Parameter<std::string> ImFusion::FeatureDetectionAlgorithm::p_prunerName
Initial value:
= {"Feature match pruner",
"",
this}

Possible values are the pruners registered in the FeatureMatchPrunerFactory.


The documentation for this class was generated from the following file:
  • ImFusion/Vision/FeatureDetectionAlgorithm.h
Search Tab / S to search, Esc to close