STIR  6.2.0
Public Member Functions | List of all members
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 >:
Inheritance graph
[legend]

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. More...
 
 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. More...
 
bool is_trivial () const override
 Should return true when the operations won't modify the object at all. More...
 
- Public Member Functions inherited from stir::ArrayFunctionObject_1ArgumentImplementation< num_dimensions, elemT >
void operator() (Array< num_dimensions, elemT > &array) const override
 in-place modification More...
 
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 More...
 
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 More...
 

Additional Inherited Members

- Protected Member Functions inherited from stir::SeparableArrayFunctionObject< num_dimensions, elemT >
void do_it (Array< num_dimensions, elemT > &array) const override
 
- Protected Member Functions inherited from stir::ArrayFunctionObject_1ArgumentImplementation< num_dimensions, elemT >
virtual void do_it (Array< num_dimensions, elemT > &array) const =0
 
- 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
fwhmsthe 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)

References _PI, stir::error(), stir::VectorWithOffset< T >::get_max_index(), stir::VectorWithOffset< T >::get_min_index(), stir::VectorWithOffset< T >::grow(), stir::info(), stir::VectorWithOffset< T >::recycle(), stir::square(), and stir::sum().


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