STIR  6.2.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 
24 START_NAMESPACE_STIR
25 
26 template <typename elemT>
27 class VectorWithOffset;
28 
29 template <typename elemT>
30 class ArrayFilter2DUsingConvolution : public ArrayFunctionObject_2ArgumentImplementation<2, elemT>
31 {
32 public:
34 
37  ArrayFilter2DUsingConvolution();
38 
39  ArrayFilter2DUsingConvolution(const Array<2, float>& filter_kernel);
40 
41  bool is_trivial() const override;
42 
43  virtual Succeeded get_influencing_indices(IndexRange<1>& influencing_indices, const IndexRange<1>& output_indices) const;
44 
45  virtual Succeeded get_influenced_indices(IndexRange<1>& influenced_indices, const IndexRange<1>& input_indices) const;
46 
47 private:
48  Array<2, float> filter_coefficients;
49  void do_it(Array<2, elemT>& out_array, const Array<2, elemT>& in_array) const override;
50 };
51 
52 END_NAMESPACE_STIR
53 
54 #endif // ArrayFilter2DUsingConvolution
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.