STIR  6.2.0
SeparableCartesianMetzImageFilter.h
Go to the documentation of this file.
1 //
2 //
13 /*
14  Copyright (C) 2000- 2009, Hammersmith Imanet
15  This file is part of STIR.
16 
17  SPDX-License-Identifier: Apache-2.0
18 
19  See STIR/LICENSE.txt for details
20 */
21 
22 #ifndef __stir_SeparableCartesianMetzImageFilter_H__
23 #define __stir_SeparableCartesianMetzImageFilter_H__
24 
27 #include "stir/DataProcessor.h"
29 
30 START_NAMESPACE_STIR
31 
32 // TODO!! remove define
33 
34 #define num_dimensions 3
35 
55 template <typename elemT>
56 class SeparableCartesianMetzImageFilter : public RegisteredParsingObject<SeparableCartesianMetzImageFilter<elemT>,
57  DataProcessor<DiscretisedDensity<3, elemT>>,
58  DataProcessor<DiscretisedDensity<3, elemT>>>
59 {
60 private:
63  DataProcessor<DiscretisedDensity<3, elemT>>>
64  base_type;
65 
66 public:
67  static const char* const registered_name;
68 
71 
72  // Construct metz filter given parameters
73  // SeparableCartesianMetzImageFilter(const double fwhm_x,const double fwhm_y, const double fwhm_z,const int metz_power_x,const
74  // int metz_power_y, const int metz_power_z);
75 
76  // Succeeded consistency_check( const DiscretisedDensity<num_dimensions,elemT>& image) const;
77 
78  VectorWithOffset<float> get_metz_fwhms() const;
79  VectorWithOffset<float> get_metz_powers() const;
81 
82  VectorWithOffset<int> get_max_kernel_sizes() const;
83 
84 private:
86  VectorWithOffset<float> metz_powers;
87  VectorWithOffset<int> max_kernel_sizes;
88 
90 
91  void set_defaults() override;
92  void initialise_keymap() override;
93 
94  Succeeded virtual_set_up(const DiscretisedDensity<num_dimensions, elemT>& image) override;
95  // new
96  void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& out_density,
97  const DiscretisedDensity<num_dimensions, elemT>& in_density) const override;
98  void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& density) const override;
99 };
100 
101 #undef num_dimensions
102 
103 END_NAMESPACE_STIR
104 
105 #endif
A class in the DataProcessor hierarchy that implements Metz filtering (which includes Gaussian filter...
Definition: SeparableCartesianMetzImageFilter.h:56
Declaration of class stir::DataProcessor.
Declaration of class stir::SeparableMetzArrayFilter.
Base class that defines an interface for classes that do data processing.
Definition: DataProcessor.h:46
defines the stir::DiscretisedDensity class
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
Separable Metz filtering in n - dimensions.
Definition: SeparableMetzArrayFilter.h:70
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
Declaration of class stir::RegisteredParsingObject.
This abstract class is the basis for all image representations.
Definition: FBP2DReconstruction.h:35