![]() |
ImFusion SDK 4.3
|
#include <ImFusion/Reg/LinearImageRegistration.h>
Registers two images using a rigid/affine transformation. More...
Inheritance diagram for LinearImageRegistration:Registers two images using a rigid/affine transformation.
Performs a non-linear optimization to find the maximum of a similarity measure that indicates an alignment of the two images.
Public Member Functions | |
| LinearImageRegistration (SharedImageSet *image1, SharedImageSet *image2) | |
| Creates a registration that keeps image1 fixed and moves image2. | |
| void | initializeTransformationModel () override |
| Does nothing because all images already have a matrix. | |
| double | evaluate (int n, const double *x, double *dx=0) override |
| Assembles the matrix and calls evaluate(const mat4&) | |
| int | numberOfParameters () const final |
| Returns 6 for rigid and 12 for affine transformation. Since it is called in the constructor it is defined final. | |
| void | reset () override |
| Resets the transformation of moving to its initial transformation. | |
| bool | isDeformable () const override |
| Returns if the registration is non-linear or not. | |
Public Member Functions inherited from ParametricImageRegistration | |
| ParametricImageRegistration (SharedImageSet *image1, SharedImageSet *image2, int numberOfParameters) | |
| Creates a registration that keeps image1 fixed and moves image2. | |
| void | compute () override |
| Starts the registration. | |
| virtual void | setProgress (Progress *progress) override |
| Sets a Progress interface the algorithm can use to notify observers about its computing progress. | |
| virtual void | setOptimizer (std::shared_ptr< Optimizer > opt) |
| Sets an optimizer. | |
| virtual std::shared_ptr< Optimizer > | optimizer () |
| virtual bool | setReference (SharedImageSet *img) |
| Specifies which of the two images will be used as a reference in the similarity measure. | |
| SharedImageSet * | reference () const override |
| Returns the image that will be iterated during the registration. | |
| virtual SimilarityMeasureFactory & | similarityMeasureFactory () |
| Returns the factory that creates the SimilarityMeasureImpl instance during the registration. | |
| virtual const SimilarityMeasureFactory & | similarityMeasureFactory () const |
| PreProcessingFilter | requiredPreprocessingFilter () const override |
| Returns LC2_GradientMagnitude if the similarity measure is LC2 or None otherwise. | |
| virtual void | setPreApplyTransformation (bool enable) |
| If set the transformation will be pre-applied before computing the similarity. | |
| virtual bool | preApplyTransformation () const |
| void | setSimilarityMeasure (SimilarityMeasureFactory::Mode mode) |
| Convenient method to set the similarity measure. | |
| SimilarityMeasureFactory::Mode | similarityMeasure () const |
| void | setPointCorrespondences (PointCorr *pc) |
| Set a point correspondences class instance to use as error function or clear it (ownership not transferred) | |
| void | setReInitialize (bool flag) |
| Specify whether similarity measure and transformation shaders shall be re-initialized every time compute is called (on by default) | |
| void | setRelativeToWorld (bool flag) |
| Sets whether the relative transformation is applied in world or image coordinates. | |
| bool | isRelativeToWorld () const |
| Returns whether the relative transformation is applied in world (true) or image coordinates (false) | |
| bool | isAffine () const |
| Returns true if the optimizer uses affine parameters or false otherwise. | |
| void | setAffine (bool affine) |
| void | setReferenceCoordinateSystem (const mat4 &mat) |
| Set a reference coordinate system to use with the linear transformation. | |
| void | setWeights (const SharedImage *weights1, const SharedImage *weights2) |
| Set optional weight images which will be passed on to the similarity measure class. | |
| void | setErrorFunction (ErrorFunction *ef) |
| Set an optional error function that is also used to penalize the image similarity during registration. | |
| int | numberOfLinearParameters () const |
| Return the number of parameters for the linear transformation model. | |
| double | overlap () const |
| Return the last overlap computed by the similarity measure (0..1), i.e. the fraction of used pixels/voxels wrt. the fixed image. | |
| virtual double | bestSimilarityValue () const override |
| Returns the best value of the similarity measure after optimization (may return NaN if algorithm is not intialized) | |
| void | configure (const Properties *p) override |
| Configures the registration. | |
| void | configuration (Properties *p) const override |
| Gets the configuration of the registration. | |
| void | setDefaultOptimizer () |
Sets the optimizer to the optimizer created by createDefaultOptimizer | |
Public Member Functions inherited from AbstractImageRegistration | |
| AbstractImageRegistration (SharedImageSet *image1, SharedImageSet *image2) | |
| virtual SharedImageSet * | image1 () const |
| virtual SharedImageSet * | image2 () const |
| virtual void | setImage1 (SharedImageSet *img) |
| virtual void | setImage2 (SharedImageSet *img) |
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(). | |
| 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 |
Static Public Member Functions | |
| static bool | createCompatible (const DataList &data, Algorithm **a=0) |
| Expects two Volumes/Images or two Volumes/Images and a third Data as moving object (see constructors). | |
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. | |
Additional Inherited Members | |
Public Types inherited from AbstractImageRegistration | |
| enum | PreProcessingFilter { None , LC2_GradientMagnitude } |
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 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. | |
Protected Member Functions inherited from ParametricImageRegistration | |
| std::shared_ptr< Optimizer > | createDefaultOptimizer (int numParameters) const |
| Returns a default optimizer with the given number if parameters. | |
| mat4 | updateLinearTransform (int n, const double *x) |
| Compute the linear homogenous moving image transformation from optimization parameters. | |
Protected Member Functions inherited from AbstractImageRegistration | |
| bool | complainAboutDeformationOnFixedImage () |
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 Attributes inherited from ParametricImageRegistration | |
| std::shared_ptr< Optimizer > | m_opt |
| NOTE: A default optimizer will be created by configure if no instance is already set. | |
| SimilarityMeasureFactory | m_smFactory |
| SimilarityMeasureImpl * | m_sm |
| Actual similarity measure instance, only set during compute. | |
| bool | m_smIterate1 |
| bool | m_preApplyTransformation |
| bool | m_reInit |
| Re-initialize transformation and similarity measure every time compute is called. | |
| double | m_overlap |
| const SharedImage * | m_weights1 |
| const SharedImage * | m_weights2 |
| SharedImage * | m_resampled |
| the moving image with pre-applied transformation, only set during compute and if m_preApplyTransformation is true | |
| ImageTransformer * | m_transformer |
| capsulates the transformation, only set during compute | |
| PointCorr * | m_pointCorr |
| Point correspondences instance if available. | |
| ErrorFunction * | m_errorFunc |
| Optional error function also used to penalize similarity. | |
| mat4 | m_initMat |
| Initial registration matrix for linear transformation model. | |
| mat4 | m_resetMat |
| Unmodified matrix of the moving image for reseting. | |
| mat4 | m_refCoord |
| Reference coordinate system to use with linear transformation. | |
| bool | m_relWorld |
| Apply relative transformation wrt. world coordinates for linear model. | |
| int | m_affine |
| 0=rigid, 1=affine, 2=rigid then affine (2 only supported through configurable interface) | |
Protected Attributes inherited from AbstractImageRegistration | |
| SharedImageSet * | m_image1 |
| First image of the registration. | |
| SharedImageSet * | m_image2 |
| Second image of the registration. | |
| PointCorrAlgorithm * | m_pcAlg |
| Optional point correspondences for evaluation. | |
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. | |
|
overridevirtual |
Does nothing because all images already have a matrix.
Implements AbstractImageRegistration.
|
overridevirtual |
Assembles the matrix and calls evaluate(const mat4&)
Implements ParametricImageRegistration.
|
finalvirtual |
Returns 6 for rigid and 12 for affine transformation. Since it is called in the constructor it is defined final.
Implements ParametricImageRegistration.
|
overridevirtual |
Resets the transformation of moving to its initial transformation.
Implements AbstractImageRegistration.
|
overridevirtual |
Returns if the registration is non-linear or not.
Implements AbstractImageRegistration.