19 #ifndef rtkFourDSARTConeBeamReconstructionFilter_h 20 #define rtkFourDSARTConeBeamReconstructionFilter_h 25 #include <itkExtractImageFilter.h> 26 #include <itkMultiplyImageFilter.h> 27 #include <itkSubtractImageFilter.h> 28 #include <itkAddImageAdaptor.h> 29 #include <itkAddImageFilter.h> 30 #include <itkDivideOrZeroOutImageFilter.h> 31 #include <itkThresholdImageFilter.h> 121 template <
class VolumeSeriesType,
class ProjectionStackType>
148 using MultiplyFilterType = itk::MultiplyImageFilter<ProjectionStackType, ProjectionStackType, ProjectionStackType>;
149 using AddFilterType = itk::AddImageFilter<VolumeSeriesType, VolumeSeriesType>;
155 itk::DivideOrZeroOutImageFilter<ProjectionStackType, ProjectionStackType, ProjectionStackType>;
169 SetInputVolumeSeries(
const VolumeSeriesType * VolumeSeries);
170 typename VolumeSeriesType::ConstPointer
171 GetInputVolumeSeries();
176 SetInputProjectionStack(
const ProjectionStackType * Projection);
177 typename ProjectionStackType::Pointer
178 GetInputProjectionStack();
187 itkGetMacro(NumberOfIterations,
unsigned int);
192 itkGetMacro(NumberOfProjectionsPerSubset,
unsigned int);
193 itkSetMacro(NumberOfProjectionsPerSubset,
unsigned int);
197 itkGetMacro(Lambda,
double);
202 itkGetMacro(EnforcePositivity,
bool);
208 SetWeights(
const itk::Array2D<float> _arg);
212 SetSignal(
const std::vector<double> signal);
216 itkGetMacro(DisableDisplacedDetectorFilter,
bool);
225 VerifyPreconditions()
const override;
228 GenerateInputRequestedRegion()
override;
231 GenerateOutputInformation()
override;
234 GenerateData()
override;
286 #ifndef ITK_MANUAL_INSTANTIATION 287 # include "rtkFourDSARTConeBeamReconstructionFilter.hxx" bool m_DisableDisplacedDetectorFilter
itk::SmartPointer< Self > Pointer
VolumeSeriesType InputImageType
DivideFilterType::Pointer m_DivideFilter
Base class for forward projection, i.e. accumulation along x-ray lines.
ThreeDCircularProjectionGeometry::Pointer m_Geometry
FourDToProjectionStackFilterType::Pointer m_FourDToProjectionStackFilter
itk::SmartPointer< Self > Pointer
itk::SmartPointer< Self > Pointer
ProjectionStackToFourDFilterType::Pointer m_ProjectionStackToFourDFilter
MultiplyFilterType::Pointer m_ZeroMultiplyFilter
Generate an n-dimensional image with constant pixel values.
typename Superclass::BackProjectionType BackProjectionType
SubtractFilterType::Pointer m_SubtractFilter
ExtractFilterType::Pointer m_ExtractFilterRayBox
Weigting for displaced detectors.
unsigned int m_NumberOfIterations
Analytical projection of a BoxShape.
itk::MultiplyImageFilter< ProjectionStackType, ProjectionStackType, ProjectionStackType > MultiplyFilterType
AddFilterType::Pointer m_AddFilter2
itk::DivideOrZeroOutImageFilter< ProjectionStackType, ProjectionStackType, ProjectionStackType > DivideFilterType
std::vector< double > m_Signal
bool m_ProjectionsOrderInitialized
Projection geometry for a source and a 2-D flat panel.
#define itkSetMacro(name, type)
MultiplyFilterType::Pointer m_MultiplyFilter
ForwardProjectionFilterType::Pointer m_ForwardProjectionFilter
ProjectionStackType VolumeType
AddFilterType::Pointer m_AddFilter
Implements the 4D Simultaneous Algebraic Reconstruction Technique.
ConstantVolumeSeriesSourceType::Pointer m_ConstantVolumeSeriesSource
RayBoxIntersectionFilterType::Pointer m_RayBoxFilter
itk::ExtractImageFilter< ProjectionStackType, ProjectionStackType > ExtractFilterType
itk::AddImageFilter< VolumeSeriesType, VolumeSeriesType > AddFilterType
VolumeSeriesType OutputImageType
std::vector< unsigned int > m_ProjectionsOrder
itk::SmartPointer< Self > Pointer
ConstantProjectionStackSourceType::Pointer m_ConstantProjectionStackSource
void VerifyInputInformation() const override
Mother class for cone beam reconstruction filters which need runtime selection of their forward and b...
DisplacedDetectorFilterType::Pointer m_DisplacedDetectorFilter
typename Superclass::ForwardProjectionType ForwardProjectionType
itk::SmartPointer< Self > Pointer
ThresholdFilterType::Pointer m_ThresholdFilter
ExtractFilterType::Pointer m_ExtractFilter
BackProjectionFilterType::Pointer m_BackProjectionFilter
itk::SmartPointer< Self > Pointer
itk::ThresholdImageFilter< VolumeSeriesType > ThresholdFilterType
unsigned int m_NumberOfProjectionsPerSubset
itk::SmartPointer< Self > Pointer
itk::SmartPointer< Self > Pointer
Implements part of the 4D reconstruction by conjugate gradient.
itk::SubtractImageFilter< ProjectionStackType, ProjectionStackType > SubtractFilterType
itk::SmartPointer< const Self > ConstPointer