STIR  6.2.0
AnalyticReconstruction.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2000 PARAPET partners
5  Copyright (C) 2000- 2007, Hammersmith Imanet Ltd
6  Copyright (C) 2016, 2018, 2019 University College London
7  This file is part of STIR.
8 
9  SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
10 
11  See STIR/LICENSE.txt for details
12 */
13 #ifndef __stir_recon_buildblock_AnalyticReconstruction_H__
14 #define __stir_recon_buildblock_AnalyticReconstruction_H__
15 
29 #include "stir/ProjData.h"
32 #include <string>
33 
34 #include "stir/ExamData.h"
35 
36 START_NAMESPACE_STIR
37 
38 class Succeeded;
39 
50 class AnalyticReconstruction : public Reconstruction<DiscretisedDensity<3, float>>
51 {
52 public:
54 
55 private:
57 
58 public:
60  virtual DiscretisedDensity<3, float>* construct_target_image_ptr() const;
61 
63 
69  Succeeded reconstruct() override;
70 
72 
82  Succeeded reconstruct(shared_ptr<TargetT> const& target_image_sptr) override;
83 
84  void set_input_data(const shared_ptr<ExamData>&) override;
85  const ProjData& get_input_data() const override;
87 
88  int get_output_image_size_xy() const;
89  void set_output_image_size_xy(int);
90  int get_output_image_size_z() const;
91  void set_output_image_size_z(int);
92  float get_zoom_xy() const;
93  void set_zoom_xy(float);
94  float get_zoom_z() const;
95  void set_zoom_z(float);
96  const CartesianCoordinate3D<float>& get_offset() const;
97  void set_offset(const CartesianCoordinate3D<float>&);
99 
100 protected:
102  std::string input_filename;
104 
106 
108  shared_ptr<ProjData> proj_data_ptr;
109  // KT 20/06/2001 disabled
110 #if 0
111  int num_views_to_add;
113 #endif
114 
115 protected:
116  ParseAndCreateFrom<TargetT, ProjData> target_parameter_parser;
117 
119 
122  virtual Succeeded actual_reconstruct(shared_ptr<TargetT> const& target_image_sptr) = 0;
123 
125  bool post_processing() override;
126  void set_defaults() override;
127  void initialise_keymap() override;
128 };
129 
130 END_NAMESPACE_STIR
131 
132 #endif
base class for all analytic reconstruction algorithmsThis class provides extra functinoality (compare...
Definition: AnalyticReconstruction.h:50
Definition of the stir::ParseAndCreateFrom class.
declares the stir::Reconstruction class
declaration of stir::ExamData
int max_segment_num_to_process
the maximum absolute ring difference number to use in the reconstruction
Definition: AnalyticReconstruction.h:105
defines the stir::DiscretisedDensity class
Declaration of class stir::ProjData.
template for adding keywords to a parser and creating an object
Definition: ParseAndCreateFrom.h:52
shared_ptr< ProjData > proj_data_ptr
points to the object for the total input projection data
Definition: AnalyticReconstruction.h:108
base class for all ReconstructionsAs there is not a lot of commonality between different reconstructi...
Definition: Reconstruction.h:69
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
std::string input_filename
the input projection data file name
Definition: AnalyticReconstruction.h:102
Declaration of class stir::RegisteredParsingObject.
The (abstract) base class for the projection data.
Definition: ProjData.h:103