STIR  6.2.0
SeparableLowPassImageFilter.h
Go to the documentation of this file.
1 //
2 //
13 /*
14  Copyright (C) 2000- 2007, IRSL
15  SPDX-License-Identifier: Apache-2.0
16  See STIR/LICENSE.txt for details
17 */
18 
19 #ifndef __stir_SeparableLowPassImageFilter_H__
20 #define __stir_SeparableLowPassImageFilter_H__
21 
24 #include "stir/DataProcessor.h"
26 
27 START_NAMESPACE_STIR
28 
29 // TODO!! remove define
30 
31 #define num_dimensions 3
32 
33 template <typename elemT>
34 class SeparableLowPassImageFilter : public RegisteredParsingObject<SeparableLowPassImageFilter<elemT>,
35  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>,
36  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
37 {
38 private:
39  typedef RegisteredParsingObject<SeparableLowPassImageFilter<elemT>,
40  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>,
41  DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
42  base_type;
43 
44 public:
45  static const char* const registered_name;
46 
48  SeparableLowPassImageFilter();
49 
50  VectorWithOffset<float> get_filter_coefficients();
51 
52 private:
53  vector<double> filter_coefficients_for_parsing;
54  VectorWithOffset<float> filter_coefficients;
55  int z_trivial;
56 
57  SeparableLowPassArrayFilter<num_dimensions, elemT> lowpass_filter;
58 
59  virtual void set_defaults();
60  virtual void initialise_keymap();
61  virtual bool post_processing();
62 
63  Succeeded virtual_set_up(const DiscretisedDensity<num_dimensions, elemT>& image);
64  // new
65  void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& out_density,
66  const DiscretisedDensity<num_dimensions, elemT>& in_density) const;
67  void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& density) const;
68 };
69 
70 #undef num_dimensions
71 
72 END_NAMESPACE_STIR
73 
74 #endif
Declaration of class stir::DataProcessor.
defines the stir::DiscretisedDensity class
Declaration of class stir::RegisteredParsingObject.