STIR  6.2.0
DAVArrayFilter3D.h
Go to the documentation of this file.
1 //
2 //
17 /*
18  Copyright (C) 2000- 2001, IRSL
19  SPDX-License-Identifier: Apache-2.0
20  See STIR/LICENSE.txt for details
21 */
22 
23 #ifndef __stir_DAVArrayFilter3D_H__
24 #define __stir_DAVArrayFilter3D_H__
25 
27 
28 START_NAMESPACE_STIR
29 
30 template <typename coordT>
31 class Coordinate3D;
32 
33 template <typename elemT>
34 class DAVArrayFilter3D : public ArrayFunctionObject_2ArgumentImplementation<3, elemT>
35 {
36 public:
37  DAVArrayFilter3D(const Coordinate3D<int>& mask_radius = Coordinate3D<int>());
38  bool is_trivial() const;
39 
40 private:
41  int mask_radius_x;
42  int mask_radius_y;
43  int mask_radius_z;
44 
45  virtual void do_it(Array<3, elemT>& out_array, const Array<3, elemT>& in_array) const;
46 
47  void extract_neighbours_and_average(elemT& out_elem, const Array<3, elemT>& in_array, const Coordinate3D<int>& c_pixel) const;
48 };
49 
50 END_NAMESPACE_STIR
51 
52 #endif
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.