22#ifndef __stir_analytic_FBP3DRP_FBP3DRPRECONSTRUCTION_H__
23#define __stir_analytic_FBP3DRP_FBP3DRPRECONSTRUCTION_H__
36template <
typename elemT>
37class RelatedViewgrams;
38template <
typename elemT>
40template <
typename elemT>
41class SegmentBySinogram;
42template <
typename elemT>
43class VoxelsOnCartesianGrid;
44template <
int num_dimensions,
typename elemT>
45class DiscretisedDensity;
92 :
public RegisteredParsingObject<FBP3DRPReconstruction, Reconstruction<DiscretisedDensity<3, float>>, AnalyticReconstruction>
170 virtual void do_process_viewgrams(RelatedViewgrams<float>& viewgrams,
int rmin,
int rmax,
int orig_min_ring,
int orig_max_ring);
174 void ask_parameters();
223 void set_defaults()
override;
224 void initialise_keymap()
override;
229 shared_ptr<ProjDataInfo> proj_data_info_with_missing_data_sptr;
231 shared_ptr<DiscretisedDensity<3, float>> image_estimate_density_ptr;
236 shared_ptr<ForwardProjectorByBin> forward_projector_sptr;
237 shared_ptr<BackProjectorByBin> back_projector_sptr;
244 shared_ptr<ArcCorrection> arc_correction_sptr;
declares the stir::AnalyticReconstruction class
Declaration of class stir::ArcCorrection.
Declares class stir::BackProjectorByBin.
Base class for forward projectors which work on 'large' collections of bins: given the whole image,...
Declaration of class stir::ProjDataInfoCylindrical.
Declaration of class stir::RegisteredParsingObject.
base class for all analytic reconstruction algorithmsThis class provides extra functinoality (compare...
Definition AnalyticReconstruction.h:51
This class contains the Colsher filter used for 3D-PET reconstruction.
Definition ColsherFilter.h:52
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
int num_segments_to_combine
Number of segments to combine with SSRB before calling FBP.
Definition FBP3DRPReconstruction.h:195
int fit_projections
=1 => apply additional fitting procedure to forward projected data (DISABLED)
Definition FBP3DRPReconstruction.h:220
void do_best_fit(const Sinogram< float > &sino_measured, const Sinogram< float > &sino_calculated)
Best fit of forward projected sinograms.
Definition FBP3DRPReconstruction.cxx:686
double fc_ramp
Ramp filter: Cut off frequency.
Definition FBP3DRPReconstruction.h:204
void do_colsher_filter_view(RelatedViewgrams< float > &viewgrams)
Apply Colsher filter to 8 viewgrams.
Definition FBP3DRPReconstruction.cxx:797
int colsher_stretch_factor_axial
Define Colsher at larger size than used for filtering, axial direction.
Definition FBP3DRPReconstruction.h:215
double alpha_ramp
Ramp filter: Alpha value.
Definition FBP3DRPReconstruction.h:202
void do_grow3D_viewgram(RelatedViewgrams< float > &viewgrams, int rmin, int rmax)
Growing 8 viewgrams in both ring and bin directions.
Definition FBP3DRPReconstruction.cxx:736
void do_3D_backprojection_view(RelatedViewgrams< float > const &viewgrams, int rmin, int rmax)
3D backprojection implentation for 8 viewgrams.
Definition FBP3DRPReconstruction.cxx:889
int PadZ
Axial extension for FFT.
Definition FBP3DRPReconstruction.h:200
void do_read_image2D()
Read image estimated from 2D FBP.
Definition FBP3DRPReconstruction.cxx:583
void do_arc_correction(RelatedViewgrams< float > &viewgrams) const
Arc-correction viewgrams.
Definition FBP3DRPReconstruction.cxx:726
Succeeded actual_reconstruct(shared_ptr< DiscretisedDensity< 3, float > > const &) override
Implementation of the reconstruction.
Definition FBP3DRPReconstruction.cxx:364
void do_log_file(const VoxelsOnCartesianGrid< float > &image)
Saving CPU timing and values of reconstruction parameters into a log file.
Definition FBP3DRPReconstruction.cxx:899
double fc_colsher_planar
Cut-off frequency for Colsher filter in planar direction.
Definition FBP3DRPReconstruction.h:213
double fc_colsher_axial
Cut-off frequency for Colsher filter in axial direction.
Definition FBP3DRPReconstruction.h:209
int PadS
Transaxial extension for FFT.
Definition FBP3DRPReconstruction.h:198
int save_intermediate_files
Switch to save files after each segment, 0 or 1.
Definition FBP3DRPReconstruction.h:181
int display_level
Switch to display intermediate images, 0,1,2.
Definition FBP3DRPReconstruction.h:178
FBP3DRPReconstruction()
Default constructor (calls set_defaults())
Definition FBP3DRPReconstruction.cxx:333
void do_save_img(const char *file, const VoxelsOnCartesianGrid< float > &data) const
Save image data.
Definition FBP3DRPReconstruction.cxx:575
static const char *const registered_name
Name which will be used when parsing a ProjectorByBinPair object.
Definition FBP3DRPReconstruction.h:100
double alpha_colsher_axial
Alpha parameter for Colsher filter in axial direction.
Definition FBP3DRPReconstruction.h:207
double alpha_colsher_planar
Alpha parameter for Colsher filter in planar direction.
Definition FBP3DRPReconstruction.h:211
std::string method_info() const override
This method returns the type of the reconstruction algorithm during the reconstruction,...
Definition FBP3DRPReconstruction.cxx:302
void do_forward_project_view(RelatedViewgrams< float > &viewgrams, int rmin, int rmax, int orig_min_ring, int orig_max_ring) const
3D forward projection implentation by view.
Definition FBP3DRPReconstruction.cxx:752
void do_2D_reconstruction()
2D FBP implementation.
Definition FBP3DRPReconstruction.cxx:540
int colsher_stretch_factor_planar
Define Colsher at larger size than used for filtering, planar direction.
Definition FBP3DRPReconstruction.h:217
void do_3D_Reconstruction(VoxelsOnCartesianGrid< float > &image)
3D reconstruction implementation.
Definition FBP3DRPReconstruction.cxx:593
std::string image_for_reprojection_filename
Filename of image used in the reprojection step (default is empty)
Definition FBP3DRPReconstruction.h:191
projection data info for data corresponding to a 'cylindrical' sampling.
Definition ProjDataInfoCylindrical.h:49
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
A class for 2d projection data.
Definition Sinogram.h:47
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
This class is used to represent voxelised densities on a cuboid grid (3D).
Definition VoxelsOnCartesianGrid.h:46
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...