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

#include <ImFusion/Reg/RegistrationFromPredictionMapAlgorithm.h>

Algorithm to register two images based on prediction maps. More...

Inheritance diagram for ImFusion::RegistrationFromPredictionMapAlgorithm:

Detailed Description

Algorithm to register two images based on prediction maps.

If the prediction maps are not provided, pixel-wise machine learning models are computed on both volumes, which have to output a multi-channel float prediction map. These are internally converted to a label map by thresholding; the reference image one will be converted to a distance volume, the moving one will be sampled as point cloud. Each channel/label will be added with the point-cloud distance to the cost function, which is minimized with a global optimizer.

Public Member Functions

 RegistrationFromPredictionMapAlgorithm (SharedImageSet *image, SharedImageSet *imageRef, SharedImageSet *pred, SharedImageSet *predRef)
 Constructor with moving and reference image, and optional pre-computed float prediction maps.
 ~RegistrationFromPredictionMapAlgorithm () override
 Destructor.
void configure (const Properties *p) override
 Set one or multiple properties.
void configuration (Properties *p) const override
 Retrieve the properties of this object.
std::shared_ptr< Optimizer > createDefaultOptimizer () const override
 Creates and configures the global optimizer required for the registration.
OwningDataList takeOutput () override
 Return the output data based on the export flags.
void setErrorFunction (ErrorFunction *ef)
 Set an optional error function that is used to penalize cost function with e.g. a skin surface distance.
void setTranslationOnly (bool flag)
 Set if only translation should be optimized.
double evaluate (int n, const double *x, double *dx=nullptr) override
 Evaluate the multipe point cloud post function derived from the predictions.
Public Member Functions inherited from ImFusion::OptimizingAlgorithm
void setOptimizer (std::shared_ptr< Optimizer > opt)
 Set an optimizer from outside.
std::shared_ptr< Optimizer > optimizer ()
 Returns the current optimizer.
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

Protected Member Functions

virtual void processLabel (TypedImage< unsigned char > &label, int channel, bool isReference, Data::Modality modality)
 Analyze and process a single label of either reference or moving image, adding to the data to be exported.
PointDistanceReg * createCostFunctionFromPredictions (int classIndex, std::vector< std::unique_ptr< TypedImage< float > > > &distMaps)
 Convert machine learning model output to point-distance registration instances used for optimization.
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.

Methods implementing the algorithm interface

void compute () override
 Execute the algorithm.
static bool createCompatible (const DataList &data, Algorithm **a=0)

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...
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 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.
Protected Attributes inherited from ImFusion::OptimizingAlgorithm
std::shared_ptr< Optimizer > m_opt
 The optimizer instance.
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.

Member Function Documentation

◆ configure()

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

Set one or multiple properties.

Reimplemented from ImFusion::OptimizingAlgorithm.

◆ configuration()

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

Retrieve the properties of this object.

Reimplemented from ImFusion::OptimizingAlgorithm.

◆ compute()

void ImFusion::RegistrationFromPredictionMapAlgorithm::compute ( )
overridevirtual

Execute the algorithm.

Implements ImFusion::Algorithm.

◆ createDefaultOptimizer()

std::shared_ptr< Optimizer > ImFusion::RegistrationFromPredictionMapAlgorithm::createDefaultOptimizer ( ) const
overridevirtual

Creates and configures the global optimizer required for the registration.

Implements ImFusion::OptimizingAlgorithm.

◆ takeOutput()

OwningDataList ImFusion::RegistrationFromPredictionMapAlgorithm::takeOutput ( )
overridevirtual

Return the output data based on the export flags.

Reimplemented from ImFusion::Algorithm.

◆ evaluate()

double ImFusion::RegistrationFromPredictionMapAlgorithm::evaluate ( int n,
const double * x,
double * dx = nullptr )
overridevirtual

Evaluate the multipe point cloud post function derived from the predictions.

Implements ImFusion::CostFunction.


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