22 #ifndef __stir_ModifiedInverseAverigingImageFilter_H__ 23 #define __stir_ModifiedInverseAverigingImageFilter_H__ 31 #include "stir_experimental/ArrayFilter3DUsingConvolution.h" 37 #define num_dimensions 3 39 template <
typename elemT>
40 class ModifiedInverseAverigingImageFilter
41 :
public RegisteredParsingObject<ModifiedInverseAverigingImageFilter<elemT>,
42 DataProcessor<DiscretisedDensity<num_dimensions, elemT>>,
43 DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
46 typedef RegisteredParsingObject<ModifiedInverseAverigingImageFilter<elemT>,
47 DataProcessor<DiscretisedDensity<num_dimensions, elemT>>,
48 DataProcessor<DiscretisedDensity<num_dimensions, elemT>>>
52 static const char*
const registered_name;
55 ModifiedInverseAverigingImageFilter();
57 ModifiedInverseAverigingImageFilter(
string proj_data_filename,
58 string attenuation_proj_data_filename,
59 const VectorWithOffset<elemT>& filter_coefficients,
60 shared_ptr<ProjData> proj_data_ptr,
61 shared_ptr<ProjData> attenuation_proj_data_ptr,
62 DiscretisedDensity<3, float>* initial_image,
63 DiscretisedDensity<3, float>* sensitivity_image,
65 bool z_direction_trivial);
69 vector<double> filter_coefficients_for_parsing;
70 VectorWithOffset<float> filter_coefficients;
72 shared_ptr<ProjData> proj_data_ptr;
73 string proj_data_filename;
75 shared_ptr<ProjData> attenuation_proj_data_ptr;
76 string attenuation_proj_data_filename;
78 DiscretisedDensity<3, float>* initial_image;
79 string initial_image_filename;
81 DiscretisedDensity<3, float>* sensitivity_image;
82 string sensitivity_image_filename;
84 bool z_direction_trivial;
86 Succeeded virtual_set_up(
const DiscretisedDensity<num_dimensions, elemT>& density);
88 void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& out_density,
89 const DiscretisedDensity<num_dimensions, elemT>& in_density)
const;
90 void virtual_apply(DiscretisedDensity<num_dimensions, elemT>& density)
const;
91 void precalculate_filter_coefficients(
92 VectorWithOffset<VectorWithOffset<VectorWithOffset<shared_ptr<ArrayFunctionObject<3, float>>>>>& all_filter_coefficients,
93 DiscretisedDensity<3, elemT>* in_density)
const;
95 virtual void set_defaults();
96 virtual void initialise_keymap();
98 virtual bool post_processing();
101 #undef num_dimensions Declaration of class stir::DataProcessor.
defines the stir::DiscretisedDensity class
Declaration of class stir::ProjData.
This is a messy first attempt to design spatially varying filter Given the kernel which in this case ...
defines the stir::VectorWithOffset class
Declaration of class stir::RegisteredParsingObject.