Loading...
Searching...
No Matches
opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem Class Reference

`#include <NoncentralRelativePoseSacProblem.hpp>`

Inheritance diagram for opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem:

## Public Types

enum | Algorithm { SIXPT = 0 , GE = 1 , SEVENTEENPT = 2 }
typedef transformation_t | model_t
typedef opengv::relative_pose::RelativeAdapterBase | adapter_t
typedef enum opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::Algorithm | algorithm_t
Public Types inherited from opengv::sac::SampleConsensusProblem< transformation_t >
typedef transformation_t | model_t

## Public Member Functions

| NoncentralRelativePoseSacProblem (adapter_t &adapter, algorithm_t algorithm, bool asCentral=false, bool randomSeed=true)
| Constructor.
| NoncentralRelativePoseSacProblem (adapter_t &adapter, algorithm_t algorithm, const std::vector< int > &indices, bool asCentral=false, bool randomSeed=true)
| Constructor.
virtual | ~NoncentralRelativePoseSacProblem ()
virtual bool | computeModelCoefficients (const std::vector< int > &indices, model_t &outModel) const
| See parent-class.
virtual void | getSelectedDistancesToModel (const model_t &model, const std::vector< int > &indices, std::vector< double > &scores) const
| See parent-class.
virtual void | optimizeModelCoefficients (const std::vector< int > &inliers, const model_t &model, model_t &optimized_model)
| See parent-class.
virtual int | getSampleSize () const
| See parent-class.
Public Member Functions inherited from opengv::sac::SampleConsensusProblem< transformation_t >
| SampleConsensusProblem (bool randomSeed=true)
| Contructor.
virtual | ~SampleConsensusProblem ()
| Destructor.
virtual void | getSamples (int &iterations, std::vector< int > &samples)
| Get samples for hypothesis generation.
virtual bool | isSampleGood (const std::vector< int > &sample) const
| Check if a set of samples for model generation is degenerate.
std::shared_ptr< std::vector< int > > | getIndices () const
| Get a pointer to the vector of indices used.
void | drawIndexSample (std::vector< int > &sample)
| Sub-function for getting samples for hypothesis generation.
virtual void | getDistancesToModel (const model_t &model_coefficients, std::vector< double > &distances)
| Compute the distances of all samples which respect to given model coefficients.
virtual void | selectWithinDistance (const model_t &model_coefficients, const double threshold, std::vector< int > &inliers)
| Select all the inlier samples whith respect to given model coefficients.
virtual int | countWithinDistance (const model_t &model_coefficients, const double threshold)
| Count all the inlier samples whith respect to given model coefficients.
void | setIndices (const std::vector< int > &indices)
| Set the indices_ variable (see member-description).
void | setUniformIndices (int N)
| Use this method if you want to use all samples.
int | rnd ()
| Get a random number.

## Protected Attributes

adapter_t & | _adapter
algorithm_t | _algorithm
bool | _asCentral

## Additional Inherited Members

Public Attributes inherited from opengv::sac::SampleConsensusProblem< transformation_t >
int | max_sample_checks_
std::shared_ptr< std::vector< int > > | indices_
std::vector< int > | shuffled_indices_
std::mt19937 | rng_alg_
| std-based random number generator algorithm.
std::shared_ptr< std::uniform_int_distribution<> > | rng_dist_
| std-based random number generator distribution.
std::shared_ptr< std::function< int()> > | rng_gen_
| std-based random number generator.

## Detailed Description

Functions for fitting a relative-pose model to a set of bearing-vector correspondences from a multi-camera system (non-central). Can switch back to central as well in case only one camera is present. Otherwise using seventeenpt [12]. Used with a random-sample paradigm for rejecting outlier-correspondences.

## Member Typedef Documentation

## adapter_t

typedef opengv::relative_pose::RelativeAdapterBase opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::adapter_t

The type of adapter that is expected by the methods

## algorithm_t

typedef enum opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::Algorithm opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::algorithm_t

The possible algorithms for solving this problem

## model_t

typedef transformation_t opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::model_t

The model we are trying to fit (transformation)

## Member Enumeration Documentation

## Algorithm

enum opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::Algorithm

The possible algorithms for solving this problem

## Constructor & Destructor Documentation

## NoncentralRelativePoseSacProblem() [1/2]

opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::NoncentralRelativePoseSacProblem | ( | adapter_t & | adapter,
|  | algorithm_t | algorithm,
|  | bool | asCentral = false,
|  | bool | randomSeed = true )

inline

Constructor.

Parameters

  [in] | adapter | Visitor holding bearing vector correspondences etc.
  [in] | algorithm | The algorithm to use.
  [in] | asCentral | Solve problem with only one camera?
  [in] | randomSeed | Whether to seed the random number generator with the current time.

## NoncentralRelativePoseSacProblem() [2/2]

opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::NoncentralRelativePoseSacProblem | ( | adapter_t & | adapter,
|  | algorithm_t | algorithm,
|  | const std::vector< int > & | indices,
|  | bool | asCentral = false,
|  | bool | randomSeed = true )

inline

Constructor.

Parameters

  [in] | adapter | Visitor holding bearing vector correspondences etc.
  [in] | algorithm | The algorithm to use
  [in] | indices | A vector of indices to be used from all available correspondences.
  [in] | asCentral | Solve problem with only one camera?
  [in] | randomSeed | Whether to seed the random number generator with the current time.

## ~NoncentralRelativePoseSacProblem()

virtual opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::~NoncentralRelativePoseSacProblem | ( |  | ) |

inline virtual

Destructor.

## Member Function Documentation

## computeModelCoefficients()

virtual bool opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::computeModelCoefficients | ( | const std::vector< int > & | indices,
|  | model_t & | outModel ) const

virtual

See parent-class.

Implements opengv::sac::SampleConsensusProblem< transformation_t >.

## getSampleSize()

virtual int opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::getSampleSize | ( |  | ) | const

virtual

See parent-class.

Implements opengv::sac::SampleConsensusProblem< transformation_t >.

## getSelectedDistancesToModel()

virtual void opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::getSelectedDistancesToModel | ( | const model_t & | model,
|  | const std::vector< int > & | indices,
|  | std::vector< double > & | scores ) const

virtual

See parent-class.

Implements opengv::sac::SampleConsensusProblem< transformation_t >.

## optimizeModelCoefficients()

virtual void opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::optimizeModelCoefficients | ( | const std::vector< int > & | inliers,
|  | const model_t & | model,
|  | model_t & | optimized_model )

virtual

See parent-class.

Implements opengv::sac::SampleConsensusProblem< transformation_t >.

## Member Data Documentation

## _adapter

adapter_t& opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::_adapter

protected

The adapter holding all input data.

## _algorithm

algorithm_t opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::_algorithm

protected

The algorithm we are using.

## _asCentral

bool opengv::sac_problems::relative_pose::NoncentralRelativePoseSacProblem::_asCentral

protected

Use the central algorithm? (only one camera?).

The documentation for this class was generated from the following file:

- include/opengv/sac_problems/relative_pose/NoncentralRelativePoseSacProblem.hpp