![]() |
ImFusion C++ SDK 4.5.0
|
#include <ImFusion/CT/AutoFocusMotionCompensationAlgorithm.h>
Compensating for rigid motion in projection images. More...
Compensating for rigid motion in projection images.
Public Types | |
| enum class | Mode { SHARPNESS_3D = 0 , ISO_TV = 1 } |
| enum class | MotionMode { RIGID_ISO , RIGID_SOURCEDETECTOR } |
| 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... | |
Public Member Functions | |
| AutoFocusMotionCompensationAlgorithm (SharedImageSet &data) | |
| Constructor, reference to projection data required. | |
| ~AutoFocusMotionCompensationAlgorithm () override | |
| Destructor. | |
| Public Member Functions inherited from ImFusion::CT::AlgorithmReconstructionDecorator< OptimizingAlgorithm > | |
| AlgorithmReconstructionDecorator (SharedImageSet &cbData) | |
| Constructor with reference to cone-beam data. | |
| virtual | ~AlgorithmReconstructionDecorator () override=0 |
| Virtual destructor. | |
| void | setProgress (Progress *progress) override |
| bool | survivesDataDeletion (const Data *) const override |
| Check if data is not in the input list but is using by the algorithm. | |
| ReconstructionAlgorithm * | getReconAlgorithm () override |
| 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. | |
| 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 ImFusion::Algorithm | |
| Algorithm () | |
| Default constructor will registers a single "compute" action that calls compute() and returns status(). | |
| Progress * | progress () const |
| Returns the progress interface if set. | |
| virtual int | status () const |
| Indicates the status of the last call to compute(). | |
| 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 |
Public Attributes | |
| Parameter< Mode > | p_mode = {"mode", Mode::SHARPNESS_3D, *this} |
| Criterion to evaluate the image quality. | |
| Parameter< MotionMode > | p_motionMode = {"motionMode", MotionMode::RIGID_ISO, *this} |
| Mode of motion (Currently only support rigid motion). | |
| Parameter< int > | p_numControlPoints = {"numControlPoints", 5, *this} |
| Number of control points on the trajectory spline. | |
| Parameter< double > | p_regWeight = {"regWeight", 0.0, *this} |
| Weight for regularization term. | |
| Parameter< std::vector< bool > > | p_poseParameterSelection = {"poseParameterSelection", std::vector<bool>{1, 1, 1, 0, 0, 0}, this} |
| Selection of pose parameters to optimize (tx, ty, tz, rx, ry, rz). | |
| Parameter< bool > | p_useLastControlPoint = {"useLastControlPoint", true, this} |
| If enabled, the last control point of the motion model will also be used for optimization. | |
| Parameter< bool > | p_blockMode = {"blockMode", false, this} |
| If enabled, blocks of constant transformations are defined between the control points. | |
| Parameter< bool > | p_optimizeControlPointPosition = {"optimizeControlPointPosition", true, this} |
| If enabled, positions of the control points are also optimized. | |
| Parameter< bool > | p_enableThresholds = {"enableThresholds", false, this} |
| Flag to enable/disable intensity threshold for SHARPNESS_3D. Default to false. | |
| Parameter< double > | p_sharpnessMinIntensity = {"sharpnessMinIntensity", 0.0, this} |
| Min intensity threshold for MetricSharpness computation of SHARPNESS_3D when p_enableThresholds is true. | |
| Parameter< double > | p_sharpnessMaxIntensity = {"sharpnessMaxIntensity", 1.0, this} |
| Max intensity threshold for MetricSharpness computation of SHARPNESS_3D when p_enableThresholds is true. | |
| Parameter< double > | p_sharpnessBorder = {"sharpnessBorder", 0.0, *this} |
| Texture coordinate border to compute sharpness, set to 0.0 for entire texture coordinate [0,1]. | |
| Public Attributes inherited from ImFusion::CT::AlgorithmReconstructionDecorator< OptimizingAlgorithm > | |
| SubProperty< std::unique_ptr< ReconstructionAlgorithm > > | p_reconAlgorithm |
| Reconstruction algorithm for computing the intermediate CT volume. | |
| 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 Member Functions | |
| std::shared_ptr< Optimizer > | createDefaultOptimizer () const override |
| Create a default optimizer. | |
| 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 | |
| std::unique_ptr< MotionModel > | m_motionModel |
| The motion model instance. | |
| std::unique_ptr< GlImageMetric > | m_metric |
| The image evaluation metric. | |
| Protected Attributes inherited from ImFusion::CT::AlgorithmReconstructionDecorator< OptimizingAlgorithm > | |
| SharedImageSet & | m_cbData |
| ConeBeamData instance, storing projection data. | |
| std::unique_ptr< SharedImageSet > | m_cbDataOwn |
| Owning ConeBeamData, storing projection data. | |
| 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. | |
Algorithm interface methods | |
| void | configure (const Properties *p) override |
| Configure this object instance by de-serializing the given Properties. | |
| void | configuration (Properties *p) const override |
| Serialize the current object configuration into the given Properties object. | |
| void | compute () override |
| Compute motion compensation on entire data. | |
| OwningDataList | takeOutput () override |
| Return any new Data that was created by the Algorithm during the last call to compute(). | |
| void | resetTrajectory () |
| Clear the current framePars. | |
| double | evaluate (int n, const double *x, double *dx=0) override |
| Evaluate the motion similarity measure. | |
| static bool | createCompatible (const DataList &data, Algorithm **a=0) |
Additional Inherited Members | |
| 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. | |
|
strong |
|
strong |
| ImFusion::CT::AutoFocusMotionCompensationAlgorithm::AutoFocusMotionCompensationAlgorithm | ( | SharedImageSet & | data | ) |
Constructor, reference to projection data required.
| data | Reference to cone-beam projection data |
|
static |
Create motion compensation algorithm instance
| data | Input data list |
| a | Output algorithm pointer |
|
overridevirtual |
Configure this object instance by de-serializing the given Properties.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from ImFusion::CT::AlgorithmReconstructionDecorator< OptimizingAlgorithm >.
|
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 ImFusion::CT::AlgorithmReconstructionDecorator< OptimizingAlgorithm >.
|
overridevirtual |
Compute motion compensation on entire data.
Implements ImFusion::Algorithm.
|
overridevirtual |
Return any new Data that was created by the Algorithm during the last call to compute().
The default implementation will return an empty list.
Reimplemented from ImFusion::Algorithm.
|
overridevirtual |
Evaluate the motion similarity measure.
| n | Number of parameters |
| x | Parameter values |
| dx | Optional gradient output |
Implements ImFusion::CostFunction.
|
overrideprotectedvirtual |
Create a default optimizer.
Implements ImFusion::OptimizingAlgorithm.
| Parameter<double> ImFusion::CT::AutoFocusMotionCompensationAlgorithm::p_sharpnessMinIntensity = {"sharpnessMinIntensity", 0.0, this} |
Min intensity threshold for MetricSharpness computation of SHARPNESS_3D when p_enableThresholds is true.
Default to 0.0.
| Parameter<double> ImFusion::CT::AutoFocusMotionCompensationAlgorithm::p_sharpnessMaxIntensity = {"sharpnessMaxIntensity", 1.0, this} |
Max intensity threshold for MetricSharpness computation of SHARPNESS_3D when p_enableThresholds is true.
Default to 1.0.