ImFusion SDK 4.3

#include <ImFusion/CT/Solver/AnisotropicTV.h>

Anisotropic Total Variation functional. More...

+ Inheritance diagram for AnisotropicTV:

Detailed Description

Anisotropic Total Variation functional.

Implements \(\|x\|_{\text{anisoTV}} := \|Dx\|_1\) where \(D\) is the gradient operator (FiniteDifferences).

Public Member Functions

 AnisotropicTV (const SharedImageSet &domainRef)
 
- Public Member Functions inherited from Functional
 Functional (std::unique_ptr< LinearResidual > residual, bool hessianRequiresResidualEval=true)
 Constructor with residual. This residual can be nullptr, which is taken as shorthand for the identity.
 
 Functional (std::unique_ptr< LinearOperator > A, SharedImageSet *b, bool hessianRequiresResidualEval=true)
 Constructor which implicitly constructs a residual that owns the LinearOperator.
 
virtual ~Functional ()=0
 Destructor.
 
float eval (const SharedImageSet &in) const
 Evaluates the functional \(f(in)\).
 
Status gradient (const SharedImageSet &in, SharedImageSet &out, const Selection *sel=nullptr, const ExprBase *exprOut=nullptr) const
 Evaluates the gradient \(\nabla f(in)\).
 
template<typename ImplName>
Status gradient (const SharedImageSet &in, SharedImageSet &out, const Selection *sel, const ImageMath::ExprBaseTpl< ImplName > *exprOut)
 Convenience function which wraps exprOut in sharedPolyWrapper.
 
std::unique_ptr< LinearOperatorhessian (const SharedImageSet &in) const
 Evaluates the hessian \(H_f(in)\).
 
const LinearResidualresidual () const
 Const getter for m_residual.
 
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 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
 
Configurableoperator= (const Configurable &)
 
Configurableoperator= (Configurable &&) noexcept
 

Protected Member Functions

float evalImpl (const SharedImageSet &in) const override
 Evaluation of this functional (without residual)
 
Status gradientImpl (const SharedImageSet &in, SharedImageSet &out) const override
 Gradient of this functional (without residual). Should be selection aware.
 
std::unique_ptr< LinearOperatorhessianImpl (const SharedImageSet &in) const override
 Hessian of this functional (without residual)
 

Additional Inherited Members

- Public Types inherited from Functional
using ExprBase = ImageMath::ExprBase
 
- Public Attributes inherited from Configurable
Signal signalParametersChanged
 Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted.
 
- Protected Attributes inherited from Functional
std::unique_ptr< LinearResidualm_residual
 optional residual.
 
const bool m_hessianRequiresResidualEval = true
 if set to false the result of hessianImpl is expected not to depend on the input
 
detail::SparseSharedImageSet m_residualTempSparseSharedImageSet
 Sparse tmp image.
 
- Protected Attributes inherited from Configurable
std::vector< Paramm_params
 List of all registered Parameter and SubProperty instances.
 

Member Function Documentation

◆ evalImpl()

float evalImpl ( const SharedImageSet & in) const
overrideprotectedvirtual

Evaluation of this functional (without residual)

Implements Functional.

◆ gradientImpl()

Status gradientImpl ( const SharedImageSet & in,
SharedImageSet & out ) const
overrideprotectedvirtual

Gradient of this functional (without residual). Should be selection aware.

Implements Functional.

◆ hessianImpl()

std::unique_ptr< LinearOperator > hessianImpl ( const SharedImageSet & in) const
overrideprotectedvirtual

Hessian of this functional (without residual)

Implements Functional.


The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close