STIR 6.4.0
ArrayFilter3DUsingConvolution.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_ArrayFilter3DUsingConvolution_H__
19#define __stir_ArrayFilter3DUsingConvolution_H__
20
22//#include "stir/VectorWithOffset.h"
23
24START_NAMESPACE_STIR
25
26template <typename elemT>
27class VectorWithOffset;
28
29template <typename elemT>
30class ArrayFilter3DUsingConvolution : public ArrayFunctionObject_2ArgumentImplementation<3, elemT>
31{
32public:
34
37 ArrayFilter3DUsingConvolution();
38
39 ArrayFilter3DUsingConvolution(const Array<3, 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<3, float> filter_coefficients;
52 void do_it(Array<3, elemT>& out_array, const Array<3, elemT>& in_array) const override;
53 void do_it_2d(Array<2, elemT>& out_array, const Array<2, elemT>& in_array) const;
54};
55
56END_NAMESPACE_STIR
57
58#endif // ArrayFilter3DUsingConvolution
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.