STIR  6.2.0
SeparableGaussianImageFilter.h
Go to the documentation of this file.
1 
12 /*
13  Copyright (C) 2000- 2007, Hammersmith Imanet
14  Copyright (C) 2018, UCL
15  See STIR/LICENSE.txt for details
16 */
17 
18 #ifndef __stir_SeparableGaussianImageFilter_H__
19 #define __stir_SeparableGaussianImageFilter_H__
20 
23 #include "stir/DataProcessor.h"
25 
26 START_NAMESPACE_STIR
27 
28 // TODO!! remove define
29 
30 #define num_dimensions 3
31 
50 template <typename elemT>
51 class SeparableGaussianImageFilter : public RegisteredParsingObject<SeparableGaussianImageFilter<elemT>,
52  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>,
53  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
54 {
55 private:
58  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
59  base_type;
60 
61 public:
62  static const char* const registered_name;
63 
66 
68  BasicCoordinate<num_dimensions, int> get_max_kernel_sizes();
69  bool get_normalised_filter();
70 
71  void set_fwhms(const BasicCoordinate<num_dimensions, float>&);
72  void set_max_kernel_sizes(const BasicCoordinate<num_dimensions, int>&);
73  void set_normalise(const bool);
74 
75 private:
77 
78 protected:
79  BasicCoordinate<num_dimensions, int> max_kernel_sizes;
80  bool normalise;
81 
83 
84  void set_defaults() override;
85  void initialise_keymap() override;
86 
87  // virtual bool post_processing();
88 
89  Succeeded virtual_set_up(const DiscretisedDensity<num_dimensions, elemT>& image) override;
90  // new
91  void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& out_density,
92  const DiscretisedDensity<num_dimensions, elemT>& in_density) const override;
93  void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& density) const override;
94 };
95 
96 #undef num_dimensions
97 
98 END_NAMESPACE_STIR
99 
100 #endif
Declaration of class stir::DataProcessor.
A class in the DataProcessor hierarchy that implements Gaussian filtering.
Definition: SeparableGaussianImageFilter.h:51
Declaration of class stir::SeparableGaussianArrayFilter.
Base class that defines an interface for classes that do data processing.
Definition: DataProcessor.h:46
defines the stir::DiscretisedDensity class
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
Declaration of class stir::RegisteredParsingObject.
This abstract class is the basis for all image representations.
Definition: FBP2DReconstruction.h:35
Separable Gaussian filtering in n - dimensions.
Definition: SeparableGaussianArrayFilter.h:47