STIR 6.4.0
stir::SeparableGaussianArrayFilter< num_dimensions, elemT > Class Template Reference

Separable Gaussian filtering in n - dimensions. More...

#include "stir/SeparableGaussianArrayFilter.h"

Inheritance diagram for stir::SeparableGaussianArrayFilter< num_dimensions, elemT >:

Public Member Functions

 SeparableGaussianArrayFilter ()
 Default constructor.
 
 SeparableGaussianArrayFilter (const BasicCoordinate< num_dimensions, float > &fwhm, const BasicCoordinate< num_dimensions, int > &max_kernel_sizes, bool normalise=true)
 Constructor.
 
 SeparableGaussianArrayFilter (const float fwhm, const float max_kernel_sizes, bool normalise=true)
 
 SeparableGaussianArrayFilter ()
 Default constructor.
 
 SeparableGaussianArrayFilter (const float standard_deviation, const int number_of_coefficients)
 
- Public Member Functions inherited from stir::SeparableArrayFunctionObject< num_dimensions, elemT >
 SeparableArrayFunctionObject ()
 Default constructor, results in a trivial ArrayFunctionObject.
 
 SeparableArrayFunctionObject (const VectorWithOffset< shared_ptr< ArrayFunctionObject< 1, elemT > > > &)
 Constructor taking 1D ArrayFunctionObjects.
 
bool is_trivial () const override
 Should return true when the operations won't modify the object at all.
 
- Public Member Functions inherited from stir::ArrayFunctionObject_1ArgumentImplementation< num_dimensions, elemT >
void operator() (Array< num_dimensions, elemT > &array) const override
 in-place modification
 
void operator() (Array< num_dimensions, elemT > &out_array, const Array< num_dimensions, elemT > &in_array) const override
 result stored in another array, implemented inline
 
- Public Member Functions inherited from stir::ArrayFunctionObject< num_dimensions, elemT >
virtual Succeeded get_influencing_indices (IndexRange< num_dimensions > &influencing_indices, const IndexRange< num_dimensions > &output_indices) const
 sets the range of indices that influences the result in a set of coordinates output_indices
 
virtual Succeeded get_influenced_indices (IndexRange< num_dimensions > &influenced_indices, const IndexRange< num_dimensions > &input_indices) const
 sets the range of indices that gets influenced by a set of coordinate input_indices
 

Additional Inherited Members

- Protected Member Functions inherited from stir::SeparableArrayFunctionObject< num_dimensions, elemT >
void do_it (Array< num_dimensions, elemT > &array) const override
 
- Protected Attributes inherited from stir::SeparableArrayFunctionObject< num_dimensions, elemT >
VectorWithOffset< shared_ptr< ArrayFunctionObject< 1, elemT > > > all_1d_array_filters
 

Detailed Description

template<int num_dimensions, typename elemT>
class stir::SeparableGaussianArrayFilter< num_dimensions, elemT >

Separable Gaussian filtering in n - dimensions.

The implementation follows a similar strategy used for the Metz filter, but this filter uses discretisation in image space.

See also
SeparableMetzArrayFilter for what a Metz filter is.

For power 0, the Metz filter reduces to the Gaussian filter in frequency-space. However, if the FWHM is not a lot larger than the sampling distance the Metz filter will give small negative values. Therefore, if a Gaussian filter is needed, the SeparableGaussianArrayFilter is preferable to a Metz filter with power 0.

Constructor & Destructor Documentation

◆ SeparableGaussianArrayFilter()

template<int num_dimensions, typename elemT>
stir::SeparableGaussianArrayFilter< num_dimensions, elemT >::SeparableGaussianArrayFilter ( const BasicCoordinate< num_dimensions, float > & fwhm,
const BasicCoordinate< num_dimensions, int > & max_kernel_sizes,
bool normalise = true )

Constructor.

Parameters
fwhmthe FWHM of the Gaussian 1D filters (in mm)
max_kernel_sizesmaximum number of elements in the kernels. -1 means that the size will be determined such that the smallest element is approximately 1E-6 times the largest (in each dimension)

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