RTK  2.5.0
Reconstruction Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
rtk::GetNewtonUpdateImageFilter< TGradient, THessian > Class Template Reference

#include <rtkGetNewtonUpdateImageFilter.h>

+ Inheritance diagram for rtk::GetNewtonUpdateImageFilter< TGradient, THessian >:
+ Collaboration diagram for rtk::GetNewtonUpdateImageFilter< TGradient, THessian >:

Public Types

using dataType = typename TGradient::PixelType::ValueType
 
using Pointer = itk::SmartPointer< Self >
 
using Self = GetNewtonUpdateImageFilter
 
using Superclass = itk::ImageToImageFilter< TGradient, TGradient >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const char * GetNameOfClass () const
 
void SetInputGradient (const TGradient *gradient)
 
void SetInputHessian (const THessian *hessian)
 

Static Public Member Functions

static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int nChannels = TGradient::PixelType::Dimension
 

Protected Member Functions

void DynamicThreadedGenerateData (const typename TGradient::RegionType &outputRegionForThread) override
 
void GenerateInputRequestedRegion () override
 
 GetNewtonUpdateImageFilter ()
 
 ~GetNewtonUpdateImageFilter () override=default
 
TGradient::ConstPointer GetInputGradient ()
 
THessian::ConstPointer GetInputHessian ()
 

Detailed Description

template<class TGradient, class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
class rtk::GetNewtonUpdateImageFilter< TGradient, THessian >

Computes update from gradient and Hessian in Newton's method.

This filter takes in inputs the gradient G (input 1) and the Hessian H (input 2) of a cost function, and computes the update U (output), by U = H^{-1} * G. In Newton's method, the quantity to add to the current iterate in order to get the next iterate is actually -U, so the minus operation has to be handled downstream. It is assumed that the cost function is separable, so that each pixel can be processed independently and has its own small G, H and U

Author
Cyril Mory

Definition at line 45 of file rtkGetNewtonUpdateImageFilter.h.

Member Typedef Documentation

◆ dataType

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
using rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::dataType = typename TGradient::PixelType::ValueType

Convenient type alias

Definition at line 70 of file rtkGetNewtonUpdateImageFilter.h.

◆ Pointer

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
using rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::Pointer = itk::SmartPointer<Self>

Definition at line 53 of file rtkGetNewtonUpdateImageFilter.h.

◆ Self

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
using rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::Self = GetNewtonUpdateImageFilter

Standard class type alias.

Definition at line 51 of file rtkGetNewtonUpdateImageFilter.h.

◆ Superclass

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
using rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::Superclass = itk::ImageToImageFilter<TGradient, TGradient>

Definition at line 52 of file rtkGetNewtonUpdateImageFilter.h.

Constructor & Destructor Documentation

◆ GetNewtonUpdateImageFilter()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::GetNewtonUpdateImageFilter ( )
protected

◆ ~GetNewtonUpdateImageFilter()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::~GetNewtonUpdateImageFilter ( )
overrideprotecteddefault

Member Function Documentation

◆ CreateAnother()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
virtual::itk::LightObject::Pointer rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::CreateAnother ( ) const
virtual

Reimplemented from itk::Object.

◆ DynamicThreadedGenerateData()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
void rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::DynamicThreadedGenerateData ( const typename TGradient::RegionType outputRegionForThread)
overrideprotected

Does the real work.

◆ GenerateInputRequestedRegion()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
void rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::GenerateInputRequestedRegion ( )
overrideprotectedvirtual

Reimplemented from itk::ProcessObject.

◆ GetInputGradient()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
TGradient::ConstPointer rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::GetInputGradient ( )
protected

Getters for the inputs

◆ GetInputHessian()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
THessian::ConstPointer rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::GetInputHessian ( )
protected

Getters for the inputs

◆ GetNameOfClass()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
virtual const char* rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSource< TOutputImage >.

◆ New()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
static Pointer rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::New ( )
static

Method for creation through the object factory.

◆ SetInputGradient()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
void rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::SetInputGradient ( const TGradient *  gradient)

Set methods for all inputs, since they have different types

◆ SetInputHessian()

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
void rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::SetInputHessian ( const THessian *  hessian)

Set methods for all inputs, since they have different types

Member Data Documentation

◆ nChannels

template<class TGradient , class THessian = itk::Image<itk::Vector<typename TGradient::PixelType::ValueType, TGradient::PixelType::Dimension * TGradient::PixelType::Dimension>, TGradient::ImageDimension>>
constexpr unsigned int rtk::GetNewtonUpdateImageFilter< TGradient, THessian >::nChannels = TGradient::PixelType::Dimension
static

Convenient parameters extracted from template types

Definition at line 67 of file rtkGetNewtonUpdateImageFilter.h.


The documentation for this class was generated from the following file: