STIR 6.4.0
MaximalArrayFilter3D.h
Go to the documentation of this file.
1//
2/*
3 Copyright (C) 2006 - 2007, Hammersmith Imanet Ltd
4 Copyright (C) 2010 - 2013, King's College London
5 This file is part of STIR.
6
7 SPDX-License-Identifier: Apache-2.0
8
9 See STIR/LICENSE.txt for details
10 */
19
20#ifndef __stir_MaximalArrayFilter3D_H__
21#define __stir_MaximalArrayFilter3D_H__
22
24
25START_NAMESPACE_STIR
26
27template <typename coordT>
28class Coordinate3D;
29
49template <typename elemT>
50class MaximalArrayFilter3D : public ArrayFunctionObject_2ArgumentImplementation<3, elemT>
51{
52public:
53 explicit MaximalArrayFilter3D(const Coordinate3D<int>& mask_radius);
54 MaximalArrayFilter3D();
55 bool is_trivial() const override;
56
57private:
58 int mask_radius_x;
59 int mask_radius_y;
60 int mask_radius_z;
61
62 void do_it(Array<3, elemT>& out_array, const Array<3, elemT>& in_array) const override;
63
65
67 int extract_neighbours(Array<1, elemT>&, const Array<3, elemT>& array, const Coordinate3D<int>&) const;
68};
69
70END_NAMESPACE_STIR
71
72#endif
Declaration of class stir::ArrayFunctionObject_2ArgumentImplementation.
A convenience class for children of ArrayFunctionObject. It implements the in-place operator() in ter...
Definition ArrayFunctionObject_2ArgumentImplementation.h:42
This class defines multi-dimensional (numeric) arrays.
Definition Array.h:78
a templated class for 3-dimensional coordinates.
Definition Coordinate3D.h:43
bool is_trivial() const override
Should return true when the operations won't modify the object at all.
Definition MaximalArrayFilter3D.cxx:93