STIR  6.2.0
FBP2DReconstruction.h
Go to the documentation of this file.
1 //
2 //
3 #ifndef __stir_analytic_FBP2D_FBP2DReconstruction_H__
4 #define __stir_analytic_FBP2D_FBP2DReconstruction_H__
5 /*
6  Copyright (C) 2000 PARAPET partners
7  Copyright (C) 2000- 2011, Hammersmith Imanet Ltd
8  Copyright (C) 2020, University College London
9  This file is part of STIR.
10 
11  SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
12 
13  See STIR/LICENSE.txt for details
14 */
29 #include <string>
30 #include "stir/shared_ptr.h"
31 
32 START_NAMESPACE_STIR
33 
34 template <int num_dimensions, typename elemT>
36 class Succeeded;
37 class ProjData;
38 
84  : public RegisteredParsingObject<FBP2DReconstruction, Reconstruction<DiscretisedDensity<3, float>>, AnalyticReconstruction>
85 {
86  // typedef AnalyticReconstruction base_type;
88  base_type;
89 #ifdef SWIG
90  // work-around swig problem. It gets confused when using a private (or protected)
91  // typedef in a definition of a public typedef/member
92  public:
93 #else
94 private:
95 #endif
97 
98 public:
100  static const char* const registered_name;
101 
108  explicit FBP2DReconstruction(const std::string& parameter_filename);
109 
110  FBP2DReconstruction(const shared_ptr<ProjData>&,
111  const double alpha_ramp = 1.,
112  const double fc_ramp = .5,
113  const int pad_in_s = 2,
114  const int num_segments_to_combine = -1);
115 
116  std::string method_info() const override;
117 
118  virtual void ask_parameters();
119 
120  Succeeded set_up(shared_ptr<TargetT> const& target_data_sptr) override;
121 
122 protected: // make parameters protected such that doc shows always up in doxygen
123  // parameters used for parsing
124 
126  double alpha_ramp;
128  double fc_ramp;
130  int pad_in_s;
132 
139 
143 
144 private:
145  Succeeded actual_reconstruct(shared_ptr<DiscretisedDensity<3, float>> const& target_image_ptr) override;
146 
147  shared_ptr<BackProjectorByBin> back_projector_sptr;
148 
149  void set_defaults() override;
150  void initialise_keymap() override;
151  bool post_processing() override;
152 };
153 
154 END_NAMESPACE_STIR
155 
156 #endif
base class for all analytic reconstruction algorithmsThis class provides extra functinoality (compare...
Definition: AnalyticReconstruction.h:50
int pad_in_s
amount of padding for the filter (has to be 0,1 or 2)
Definition: FBP2DReconstruction.h:130
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
double fc_ramp
Ramp filter: Cut off frequency.
Definition: FBP2DReconstruction.h:128
int display_level
potentially display data
Definition: FBP2DReconstruction.h:142
double alpha_ramp
Ramp filter: Alpha value.
Definition: FBP2DReconstruction.h:126
declares the stir::AnalyticReconstruction class
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
Reconstruction class for 2D Filtered Back Projection.
Definition: FBP2DReconstruction.h:83
static const char *const registered_name
Name which will be used when parsing a ProjectorByBinPair object.
Definition: FBP2DReconstruction.h:100
Declares class stir::BackProjectorByBin.
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.
The (abstract) base class for the projection data.
Definition: ProjData.h:103
int num_segments_to_combine
number of segments to combine (with SSRB) before starting 2D reconstruction
Definition: FBP2DReconstruction.h:137
This abstract class is the basis for all image representations.
Definition: FBP2DReconstruction.h:35