STIR  6.2.0
SeparableGaussianArrayFilter.h
Go to the documentation of this file.
1 
13 /*
14  Copyright (C) 2000 - 2009-06-22, Hammersmith Imanet Ltd
15  Copyright (C) 2011-07-01 - 2011, Kris Thielemans
16  Copyright (C) 2018, 2019, 2020, UCL
17  See STIR/LICENSE.txt for details
18 */
19 
20 #ifndef __stir_SeparableGaussianArrayFilter_H__
21 #define __stir_SeparableGaussianArrayFilter_H__
22 
25 #include "stir/Array.h"
26 #include "stir/BasicCoordinate.h"
27 
28 #include <vector>
29 
30 START_NAMESPACE_STIR
31 
46 template <int num_dimensions, typename elemT>
47 class SeparableGaussianArrayFilter : public SeparableArrayFunctionObject<num_dimensions, elemT>
48 {
49 public:
52 
54 
62  const BasicCoordinate<num_dimensions, int>& max_kernel_sizes,
63  bool normalise = true);
64 
65  SeparableGaussianArrayFilter(const float fwhm, const float max_kernel_sizes, bool normalise = true);
66 
67 private:
68  void construct_filter(bool normalise = true);
69 
70  void calculate_coefficients(VectorWithOffset<elemT>& filter_coefficients,
71  const int max_kernel_sizes,
72  const float fwhm,
73  bool normalise);
74 
76  BasicCoordinate<num_dimensions, int> max_kernel_sizes;
77 };
78 
79 END_NAMESPACE_STIR
80 
81 #endif
This class implements an n -dimensional ArrayFunctionObject whose operation is separable.
Definition: SeparableArrayFunctionObject.h:41
Declaration of class stir::SeparableArrayFunctionObject.
defines the stir::DiscretisedDensity class
defines the Array class for multi-dimensional (numeric) arrays
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
Separable Gaussian filtering in n - dimensions.
Definition: SeparableGaussianArrayFilter.h:47