STIR  6.3.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 #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 
50 private:
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 
55 END_NAMESPACE_STIR
56 
57 #endif // ArrayFilter2DUsingConvolution
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.