STIR  6.2.0
MinimalArrayFilter3D.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2006 - 2007, Hammersmith Imanet Ltd
5  This file is part of STIR.
6 
7  SPDX-License-Identifier: Apache-2.0
8 
9  See STIR/LICENSE.txt for details
10 */
21 #ifndef __stir_MinimalArrayFilter3D_H__
22 #define __stir_MinimalArrayFilter3D_H__
23 
25 
26 START_NAMESPACE_STIR
27 
28 template <typename coordT>
29 class Coordinate3D;
30 
50 template <typename elemT>
52 {
53 public:
54  explicit MinimalArrayFilter3D(const Coordinate3D<int>& mask_radius);
56  bool is_trivial() const override;
57 
58 private:
59  int mask_radius_x;
60  int mask_radius_y;
61  int mask_radius_z;
62 
63  void do_it(Array<3, elemT>& out_array, const Array<3, elemT>& in_array) const override;
64 
66 
68  int extract_neighbours(Array<1, elemT>&, const Array<3, elemT>& array, const Coordinate3D<int>&) const;
69 };
70 
71 END_NAMESPACE_STIR
72 
73 #endif
A convenience class for children of ArrayFunctionObject. It implements the in-place operator() in ter...
Definition: ArrayFunctionObject_2ArgumentImplementation.h:41
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.
Implements erosion on 3D arrays.
Definition: MinimalArrayFilter3D.h:51
The 1-dimensional (partial) specialisation of Array.
Definition: Array.h:339