STIR  6.2.0
SeparableGaussianImageFilter.h
Go to the documentation of this file.
1 //
2 //
13 /*
14  Copyright (C) 2000- 2007, Hammersmith Imanet
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 
32 template <typename elemT>
33 class SeparableGaussianImageFilter : public RegisteredParsingObject<SeparableGaussianImageFilter<elemT>,
34  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>,
35  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
36 {
37 private:
38  typedef RegisteredParsingObject<SeparableGaussianImageFilter<elemT>,
39  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>,
40  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
41  base_type;
42 
43 public:
44  static const char* const registered_name;
45 
47  SeparableGaussianImageFilter();
48 
49  float get_standard_deviation();
50 
51 private:
52  float standard_deviation;
53  int number_of_coefficients;
54 
55  SeparableGaussianArrayFilter<num_dimensions, elemT> gaussian_filter;
56 
57  virtual void set_defaults();
58  virtual void initialise_keymap();
59  virtual bool post_processing();
60 
61  Succeeded virtual_set_up(const DiscretisedDensity<num_dimensions, elemT>& image);
62  // new
63  void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& out_density,
64  const DiscretisedDensity<num_dimensions, elemT>& in_density) const;
65  void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& density) const;
66 };
67 
68 #undef num_dimensions
69 
70 END_NAMESPACE_STIR
71 
72 #endif
Declaration of class stir::DataProcessor.
defines the stir::DiscretisedDensity class
Declaration of class stir::RegisteredParsingObject.