STIR 6.4.0
ArrayFilter2DUsingConvolution.h
Go to the documentation of this file.
1//
2//
13/*
14 Copyright (C) 2000- 2002, IRSL
15 See STIR/LICENSE.txt for details
16*/
17
18#ifndef __stir_ArrayFilter2DUsingConvolution_H__
19#define __stir_ArrayFilter2DUsingConvolution_H__
20
22//#include "stir/VectorWithOffset.h"
23
24START_NAMESPACE_STIR
25
26template <typename elemT>
27class VectorWithOffset;
28
29template <typename elemT>
30class ArrayFilter2DUsingConvolution : public ArrayFunctionObject_2ArgumentImplementation<2, elemT>
31{
32public:
34
37 ArrayFilter2DUsingConvolution();
38
39 ArrayFilter2DUsingConvolution(const Array<2, float>& filter_kernel);
40
41 bool is_trivial() const override;
42
43#if 0
44 // commented out as it does not make sense to have a 1D IndexRange for a 2D filter
45 virtual Succeeded get_influencing_indices(IndexRange<1>& influencing_indices, const IndexRange<1>& output_indices) const;
46
47 virtual Succeeded get_influenced_indices(IndexRange<1>& influenced_indices, const IndexRange<1>& input_indices) const;
48#endif
49
50private:
51 Array<2, float> filter_coefficients;
52 void do_it(Array<2, elemT>& out_array, const Array<2, elemT>& in_array) const override;
53};
54
55END_NAMESPACE_STIR
56
57#endif // ArrayFilter2DUsingConvolution
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.