RTK  2.6.0
Reconstruction Toolkit
rtkOSEMConeBeamReconstructionFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright RTK Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * https://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 
19 #ifndef rtkOSEMConeBeamReconstructionFilter_h
20 #define rtkOSEMConeBeamReconstructionFilter_h
21 
25 
26 #include <itkExtractImageFilter.h>
27 #include <itkMultiplyImageFilter.h>
28 #include <itkAddImageAdaptor.h>
29 #include <itkDivideImageFilter.h>
31 
32 #include "rtkConstantImageSource.h"
34 
35 namespace rtk
36 {
37 
117 template <class TVolumeImage, class TProjectionImage = TVolumeImage>
118 class ITK_TEMPLATE_EXPORT OSEMConeBeamReconstructionFilter
119  : public rtk::IterativeConeBeamReconstructionFilter<TVolumeImage, TProjectionImage>
120 {
121 public:
122  ITK_DISALLOW_COPY_AND_MOVE(OSEMConeBeamReconstructionFilter);
123 
129 
131  using VolumeType = TVolumeImage;
132  using ProjectionType = TProjectionImage;
133 
144 
145  using ForwardProjectionType = typename Superclass::ForwardProjectionType;
146  using BackProjectionType = typename Superclass::BackProjectionType;
147 
149  itkNewMacro(Self);
150 
152  itkOverrideGetNameOfClassMacro(OSEMConeBeamReconstructionFilter);
153 
155  itkGetModifiableObjectMacro(Geometry, ThreeDCircularProjectionGeometry);
156  itkSetObjectMacro(Geometry, ThreeDCircularProjectionGeometry);
158 
160  itkGetMacro(NumberOfIterations, unsigned int);
161  itkSetMacro(NumberOfIterations, unsigned int);
163 
165  itkGetMacro(NumberOfProjectionsPerSubset, unsigned int);
166  itkSetMacro(NumberOfProjectionsPerSubset, unsigned int);
168 
170  itkGetMacro(BetaRegularization, double);
171  itkSetMacro(BetaRegularization, double);
173 
179  itkGetMacro(StoreNormalizationImages, bool);
180  itkSetMacro(StoreNormalizationImages, bool);
182 
183 protected:
185  ~OSEMConeBeamReconstructionFilter() override = default;
186 
188  void
189  VerifyPreconditions() const override;
190 
191  void
192  GenerateInputRequestedRegion() override;
193 
194  void
195  GenerateOutputInformation() override;
196 
197  void
198  GenerateData() override;
199 
202  void
203  VerifyInputInformation() const override
204  {}
205 
218 
219 private:
221  unsigned int m_NumberOfProjectionsPerSubset{ 1 };
222 
225 
227  unsigned int m_NumberOfIterations{ 3 };
228 
230  double m_BetaRegularization{ 0. };
231 
232  bool m_StoreNormalizationImages{ true };
233 
234 }; // end of class
235 
236 } // end namespace rtk
237 
238 #ifndef ITK_MANUAL_INSTANTIATION
239 # include "rtkOSEMConeBeamReconstructionFilter.hxx"
240 #endif
241 
242 #endif
Base class for forward projection, i.e. accumulation along x-ray lines.
BackProjectionFilterType::Pointer m_BackProjectionFilter
Generate an n-dimensional image with constant pixel values.
typename Superclass::BackProjectionType BackProjectionType
DivideProjectionFilterType::Pointer m_DivideProjectionFilter
BackProjectionFilterType::Pointer m_BackProjectionNormalizationFilter
Implements the Ordered-Subset Expectation-Maximization algorithm.
typename Superclass::ForwardProjectionType ForwardProjectionType
ConstantProjectionSourceType::Pointer m_OneConstantProjectionStackSource
ThreeDCircularProjectionGeometry::Pointer m_Geometry
Projection geometry for a source and a 2-D flat panel.
DePierroRegularizationFilterType::Pointer m_DePierroRegularizationFilter
#define itkSetMacro(name, type)
ForwardProjectionFilterType::Pointer m_ForwardProjectionFilter
Implements a regularization for MLEM/OSEM reconstruction.
ConstantVolumeSourceType::Pointer m_ConstantVolumeSource
Mother class for cone beam reconstruction filters which need runtime selection of their forward and b...
ConstantProjectionSourceType::Pointer m_ZeroConstantProjectionStackSource