STIR 6.4.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
27START_NAMESPACE_STIR
28
29// TODO!! remove define
30
31#define num_dimensions 3
32
33template <typename elemT>
34class SeparableLowPassImageFilter : public RegisteredParsingObject<SeparableLowPassImageFilter<elemT>,
35 DataProcessor<DiscretisedDensity<num_dimensions, elemT>>,
36 DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
37{
38private:
39 typedef RegisteredParsingObject<SeparableLowPassImageFilter<elemT>,
40 DataProcessor<DiscretisedDensity<num_dimensions, elemT>>,
41 DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
42 base_type;
43
44public:
45 static const char* const registered_name;
46
48 SeparableLowPassImageFilter();
49
50 VectorWithOffset<float> get_filter_coefficients();
51
52private:
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
72END_NAMESPACE_STIR
73
74#endif
Declaration of class stir::DataProcessor.
defines the stir::DiscretisedDensity class
Declaration of class stir::RegisteredParsingObject.