![]() |
ImFusion SDK 4.3
|
#include <ImFusion/Reg/FeatureMapsRegistrationAlgorithm.h>
Algorithm for registering feature maps volumes. More...
Inheritance diagram for FeatureMapsRegistrationAlgorithm:Algorithm for registering feature maps volumes.
Classes | |
| struct | OptimizationParameter |
| Encapsulates the name and range (min, max) of a parameter. More... | |
Public Types | |
| enum class | Similarity { Dot = 0 , SSD = 1 } |
| enum class | Transformation { Rigid = 0 , Affine = 1 } |
Public Types inherited from Algorithm | |
| enum | Status { Unknown = -1 , Success = 0 , Error = 1 , InvalidInput , IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU , UnknownAction , AbortedByUser , User = 1000 } |
| Status codes. More... | |
Public Member Functions | |
| FeatureMapsRegistrationAlgorithm (SharedImageSet &fixed, SharedImageSet &moving, SharedImageSet *weightMoving=nullptr) | |
| void | compute () override |
| Execute the algorithm. | |
| double | evaluate (int n, const double *x, double *dx) override |
Evaluates the objective function using parameters x. This algorithm supports gradients. | |
| Eigen::VectorXd | eval (const Eigen::VectorXd ¶ms) |
| Evaluates the objective function, returns a vector containing [value, gradient...]. | |
| std::vector< Eigen::VectorXd > | batchEval (const std::vector< Eigen::VectorXd > ¶ms) |
Batched implementation of eval. Thanks to GPU parallelism it is much faster than calling eval multiple times. | |
| std::optional< std::pair< Eigen::VectorXd, double > > | localSearch (Eigen::VectorXd startingParams) |
Executes local search of the optimal parameters starting from startingParams. Returns a pair (parameters, score) | |
| std::optional< std::pair< Eigen::VectorXd, double > > | localSearch () |
| Executes local search of the optimal parameters starting from the current parameters. Returns a pair (parameters, score) | |
| std::vector< std::pair< Eigen::VectorXd, double > > | globalSearch (const Eigen::VectorXd &lowerBound, const Eigen::VectorXd &upperBound, int populationSize) |
| Executes global search of the optimal parameters within the given bounds. | |
| std::vector< std::pair< Eigen::VectorXd, double > > | globalSearch () |
Runs global search using the parameters specified in p_rotationRange, p_translationRange, p_searchTrials. | |
| mat4 | registrationMatrix (const Eigen::VectorXd ¶ms) const |
| Converts parameters to a matrix. | |
| void | applyRegistration (const Eigen::VectorXd ¶ms) |
| Applies the registration to the moving image. | |
| void | resetPose () |
| Reset the pose of the moving image. | |
| void | acceptCurrentParameters () |
| Set the initial pose of the moving image as the one specified by the current parameters, retest the current parameters to zero. | |
| void | setDeformation (std::unique_ptr< ClDeformation > deformation) |
| Adds a deformation to the registration problem. | |
| std::vector< OptimizationParameter > | parameters () const |
| List of parameters of the objective function. | |
| void | configuration (Properties *p) const override |
| Serialize the current object configuration into the given Properties object. | |
| int | numEvals () const |
| Total number of evaluations of the objective function. | |
| double | bestVal () const |
| Best value obtained by the optimizer. | |
| void | setMovingFeatures (SharedImageSet &moving, SharedImageSet *weight=nullptr) |
| Replaces the moving features and their weight. | |
| void | setMovingWeight (SharedImageSet *weight=nullptr) |
| const SharedImageSet * | moving () const |
| const SharedImageSet * | fixed () const |
| const SharedImageSet * | weight () const |
| void | setRotationCenter (const vec3 ¢erWorld) |
| Sets the rotation center. By default it is the center of the moving image. | |
| void | setPointCorrespondencesPenalty (const PointCorrespondences *pointCorr, double radius=10.0, double weight=1.0) |
| Sets the PointCorrespondences used as a penalty In the point correspondences the first point set is assumed to be on the moving volume, and the second on the fixed volume. | |
Public Member Functions inherited from OptimizingAlgorithm | |
| void | setOptimizer (std::shared_ptr< Optimizer > opt) |
| Set an optimizer from outside. | |
| std::shared_ptr< Optimizer > | optimizer () |
| Returns the current optimizer. | |
| void | configure (const Properties *p) override |
| Configures the optimizer from a sub-property if available. | |
| void | configuration (Properties *p) const override |
| Stores the optimizer configuration into a sub-property. | |
Public Member Functions inherited from Algorithm | |
| Algorithm () | |
| Default constructor will registers a single "compute" action that calls compute() and returns status(). | |
| virtual OwningDataList | takeOutput () |
| Return any new Data that was created by the Algorithm during the last call to compute(). | |
| 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 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 |
Public Member Functions inherited from SignalReceiver | |
| SignalReceiver ()=default | |
| Default constructor. | |
| SignalReceiver (const SignalReceiver &other) | |
| Copy constructor, does not copy any existing signal connections from other. | |
| SignalReceiver & | operator= (SignalReceiver rhs) |
| Assignment operator, disconnects all existing connections, does not copy any existing signal connections from rhs. | |
| virtual | ~SignalReceiver () |
| Virtual destructor disconnects from all connected signals. | |
Static Public Member Functions | |
| static bool | createCompatible (const DataList &data, Algorithm **a=nullptr) |
Static Public Member Functions inherited from 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< Similarity > | p_similarity = {"similarity", Similarity::Dot, this} |
| Parameter< Transformation > | p_transformation = {"transformation", Transformation::Rigid, this} |
| Parameter< bool > | p_quantize = {"quantize", false, this} |
| Parameter< bool > | p_relativeWeight = {"relativeWeight", false, this} |
| Parameter< double > | p_rotationRange = {"rotationRange", 40.0, this} |
| Parameter< double > | p_translationRange = {"translationRange", 80.0, this} |
| Parameter< int > | p_searchTrials = {"searchTrials", 256, this} |
| Parameter< int > | p_blockSize = {"blockSize", 128, this} |
| Parameter< double > | p_weightThreshold = {"weightThreshold", 1e-3, this} |
Public Attributes inherited from 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 Configurable | |
| Signal | signalParametersChanged |
Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
Additional Inherited Members | |
Protected Member Functions inherited from 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 Member Functions inherited from SignalReceiver | |
| void | disconnectAll () |
| Disconnects all existing connections. | |
Protected Attributes inherited from OptimizingAlgorithm | |
| std::shared_ptr< Optimizer > | m_opt |
| The optimizer instance. | |
Protected Attributes inherited from 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 Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
|
strong |
|
overridevirtual |
Execute the algorithm.
Implements Algorithm.
|
overridevirtual |
Evaluates the objective function using parameters x. This algorithm supports gradients.
Implements CostFunction.
| std::vector< std::pair< Eigen::VectorXd, double > > globalSearch | ( | const Eigen::VectorXd & | lowerBound, |
| const Eigen::VectorXd & | upperBound, | ||
| int | populationSize ) |
Executes global search of the optimal parameters within the given bounds.
Returns a vector of pairs {(parameters, score), ...} sorted from best to worst
| std::vector< std::pair< Eigen::VectorXd, double > > globalSearch | ( | ) |
Runs global search using the parameters specified in p_rotationRange, p_translationRange, p_searchTrials.
Returns a vector of pairs {(parameters, score), ...} sorted from best to worst
|
overridevirtual |
Serialize the current object configuration into the given Properties object.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from Configurable.