STIR 6.4.0
NonseparableConvolutionUsingRealDFTImageFilter.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2007- 2007, Hammersmith Imanet
5 This file is part of STIR.
6
7 SPDX-License-Identifier: Apache-2.0
8 See STIR/LICENSE.txt for details
9*/
10
20
21#ifndef __stir_NonseparableConvolutionUsingRealDFTImageFilter_H__
22#define __stir_NonseparableConvolutionUsingRealDFTImageFilter_H__
23
27#include "stir/DataProcessor.h"
30
31START_NAMESPACE_STIR
32
33// TODO!! remove define
34// currently fixed at 3 because I didn't really have a good idea for the parsing
35// keywords in n dimensions.
36//
37#define num_dimensions 3
38
65template <typename elemT>
67 : public RegisteredParsingObject<NonseparableConvolutionUsingRealDFTImageFilter<elemT>,
68 DataProcessor<DiscretisedDensity<3, elemT>>,
69 DataProcessor<DiscretisedDensity<3, elemT>>>
70{
71private:
75 base_type;
76
77public:
79 static const char* const registered_name;
80
83
85
90
91private:
92 std::string _kernel_filename;
93 shared_ptr<DiscretisedDensity<num_dimensions, elemT>> _kernel_sptr;
94 shared_ptr<ArrayFilterUsingRealDFTWithPadding<num_dimensions, elemT>> _array_filter_sptr; // ChT::float
95 Array<num_dimensions, elemT> _filter_coefficients;
96
97 void set_defaults() override;
98 void initialise_keymap() override;
99 bool post_processing() override;
100
101 Succeeded virtual_set_up(const DiscretisedDensity<num_dimensions, elemT>& image) override;
102 void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& out_density,
103 const DiscretisedDensity<num_dimensions, elemT>& in_density) const override;
104 void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& density) const override;
105};
106
107#undef num_dimensions
108
109END_NAMESPACE_STIR
110
111#endif
Declaration of class stir::ArrayFilterUsingRealDFTWithPadding.
Declaration of class stir::DataProcessor.
defines the stir::DiscretisedDensity class
Declaration of class NonseparableConvolutionUsingRealDFTImageFilter.
Declaration of class stir::RegisteredParsingObject.
defines the stir::VectorWithOffset class
This class defines multi-dimensional (numeric) arrays.
Definition Array.h:78
Base class that defines an interface for classes that do data processing.
Definition DataProcessor.h:47
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
NonseparableConvolutionUsingRealDFTImageFilter(const Array< num_dimensions, elemT > &filter_coefficients)
Constructor taking filter kernel explicitly.
NonseparableConvolutionUsingRealDFTImageFilter()
Default constructor.
Definition NonseparableConvolutionUsingRealDFTImageFilter.cxx:34
static const char *const registered_name
Name for parsing registry.
Definition NonseparableConvolutionUsingRealDFTImageFilter.h:79
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44