![]() |
ImFusion C++ SDK 4.4.0
|
#include <ImFusion/CT/Solver/Solver.h>
Abstract base class for optimization solvers. More...
Abstract base class for optimization solvers.
Provides interface for solving OptimizationProblems in tomographic reconstruction. Concrete implementations include iterative methods (SART, MLEM, CG) and analytical methods (FDK).
Public Member Functions | |
| Solver (OptimizationProblem &problem) | |
| Default constructor. | |
| ~Solver () override=0 | |
| Destructor. | |
| CT::Status | solve (Progress *p=nullptr) |
| Solves a Problem. | |
| virtual float | defaultInitValue () const =0 |
| Return default initialization value for the current solver. | |
| const OptimizationProblem & | problem () |
| const std::vector< std::unique_ptr< EventHandler > > & | eventHandlers () |
| 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. | |
| 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< bool > | p_cropFan = {"cropFan", false, *this} |
| Whether to apply CropFan in the end of computation. | |
| Parameter< bool > | p_forcePositivity = {"forcePositivity", false, *this} |
| Whether to apply a positivity enforcement in the end of computation. | |
| Public Attributes inherited from ImFusion::Configurable | |
| Signal | signalParametersChanged |
| Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
Protected Attributes | |
| OptimizationProblem | m_problem |
| View on the problem. | |
| std::vector< std::unique_ptr< EventHandler > > | m_eventHandlers |
| Event handlers. | |
| Protected Attributes inherited from ImFusion::Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
| CT::Status ImFusion::CT::Solver::solve | ( | Progress * | p = nullptr | ) |
Solves a Problem.
This member calls the solveImpl, which is overridden in each solver. Solvers are expected to operate in-place on the currentSolution() member variable of the OptimizationProblem provided at construction.
|
pure virtual |
Return default initialization value for the current solver.
Implemented in ImFusion::CT::CG, ImFusion::CT::FDK, ImFusion::CT::MLEM, ImFusion::CT::SART, and ImFusion::CT::SQS.
|
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::Configurable.
|
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::Configurable.