STIR 6.4.0
ArcCorrection.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2005- 2005, Hammersmith Imanet Ltd
5 This file is part of STIR.
6
7 SPDX-License-Identifier: Apache-2.0
8
9 See STIR/LICENSE.txt for details
10*/
19#ifndef __stir_ArcCorrection_H__
20#define __stir_ArcCorrection_H__
21
22#include "stir/ProjDataInfo.h"
23#include "stir/Array.h"
24#include "stir/shared_ptr.h"
25
26START_NAMESPACE_STIR
27
28class Succeeded;
29class ProjDataInfoCylindricalArcCorr;
30class ProjDataInfoCylindricalNoArcCorr;
31template <class elemT>
32class Sinogram;
33template <class elemT>
34class Viewgram;
35template <class elemT>
36class RelatedViewgrams;
37template <class elemT>
38class SegmentBySinogram;
39template <class elemT>
40class SegmentByView;
41class ProjData;
60class ArcCorrection
61{
62public:
63 ArcCorrection();
64
66
72
73 Succeeded set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_sptr,
74 const int num_arccorrected_tangential_poss,
75 const float bin_size);
76
78
82 Succeeded set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_sptr, const int num_arccorrected_tangential_poss);
84
91 Succeeded set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_sptr);
93
98 const ProjDataInfoCylindricalArcCorr& get_arc_corrected_proj_data_info() const;
100
103 shared_ptr<const ProjDataInfo> get_arc_corrected_proj_data_info_sptr() const;
105
110 const ProjDataInfoCylindricalNoArcCorr& get_not_arc_corrected_proj_data_info() const;
112
115 shared_ptr<const ProjDataInfo> get_not_arc_corrected_proj_data_info_sptr() const;
117
119
131 void do_arc_correction(Sinogram<float>& out, const Sinogram<float>& in) const;
133 void do_arc_correction(Viewgram<float>& out, const Viewgram<float>& in) const;
140 Succeeded do_arc_correction(ProjData& out, const ProjData& in) const;
142
143private:
144 shared_ptr<const ProjDataInfo> _noarc_corr_proj_data_info_sptr;
145 shared_ptr<const ProjDataInfo> _arc_corr_proj_data_info_sptr;
146 Array<1, float> _arccorr_coords;
147 Array<1, float> _noarccorr_coords;
148 Array<1, float> _noarccorr_bin_sizes;
149 float tangential_sampling;
150
151 void do_arc_correction(Array<1, float>& out, const Array<1, float>& in) const;
152};
153
154END_NAMESPACE_STIR
155#endif
defines the stir::Array class for multi-dimensional (numeric) arrays
Declaration of class stir::ProjDataInfo.
shared_ptr< const ProjDataInfo > get_arc_corrected_proj_data_info_sptr() const
Returning a shared_ptr to the object.
Definition ArcCorrection.cxx:52
Sinogram< float > do_arc_correction(const Sinogram< float > &in) const
Definition ArcCorrection.cxx:203
shared_ptr< const ProjDataInfo > get_not_arc_corrected_proj_data_info_sptr() const
Returning a shared_ptr to the object.
Definition ArcCorrection.cxx:58
Succeeded set_up(const shared_ptr< const ProjDataInfo > &proj_data_info_sptr, const int num_arccorrected_tangential_poss, const float bin_size)
Most general version.
Definition ArcCorrection.cxx:64
This class defines multi-dimensional (numeric) arrays.
Definition Array.h:78
Projection data info for arc-corrected data.
Definition ProjDataInfoCylindricalArcCorr.h:41
Projection data info for data which are not arc-corrected.
Definition ProjDataInfoCylindricalNoArcCorr.h:83
The (abstract) base class for the projection data.
Definition ProjData.h:105
A class for storing viewgrams which are related by symmetry.
Definition RelatedViewgrams.h:41
A class for storing (3d) projection data with fixed SegmentIndices.
Definition SegmentBySinogram.h:51
A class for storing (3d) projection data with fixed SegmentIndices.
Definition SegmentByView.h:52
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
A class for 2d projection data.
Definition Viewgram.h:49
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...