15 #ifndef itkImageReconstructionMethod_h
16 #define itkImageReconstructionMethod_h
18 #include <itkProcessObject.h>
21 #include <itkSingleValuedNonLinearOptimizer.h>
43 template <
class IntensityType =
double>
108 itkSetObjectMacro( Optimizer, OptimizerType );
109 itkGetObjectMacro( Optimizer, OptimizerType );
112 itkSetObjectMacro( Metric, MetricType );
113 itkGetObjectMacro( Metric, MetricType );
124 void SetReconEstimate( ReconstructionType *im3D);
127 void UpdateReconstructionEstimate( ReconstructionType *im3D);
130 void UpdateReconstructionEstimateWithAverage( ReconstructionType *im3D);
132 void UpdateInitialParameters(
void);
135 bool SetInputProjectionVolume( InputProjectionVolumeType *im2D);
143 virtual void Initialise() throw (ExceptionObject);
146 InputProjectionVolumeType *GetInput();
148 ReconstructionOutputType *GetOutput();
151 ReconstructionOutputType *GetReconstructedVolume() const;
155 virtual DataObjectPointer MakeOutput(
unsigned int idx);
159 unsigned long GetMTime() const override;
163 virtual ~ImageReconstructionMethod() {};
164 void PrintSelf(std::ostream& os, Indent indent)
const override;
174 void StartReconstruction(
void);
180 void StartOptimization(
void);
184 void GenerateData ()
override;
189 void operator=(
const Self&);
191 bool m_FlagInitialised;
193 OptimizerPointer m_Optimizer;
194 MetricPointer m_Metric;
195 ProjectionGeometryPointer m_ProjectionGeometry;
197 InputProjectionVolumePointer m_ProjectionImages;
198 ReconstructionPointer m_VolumeEstimate;
200 ParametersType m_InitialParameters;
201 ParametersType m_LastParameters;
203 ReconstructionSizeType m_ReconstructedVolumeSize;
204 ReconstructionSpacingType m_ReconstructedVolumeSpacing;
205 ReconstructionPointType m_ReconstructedVolumeOrigin;
208 ReconstructionUpdateCommandPointer m_ReconstructionUpdateCommand;
215 #ifndef ITK_MANUAL_INSTANTIATION
216 #include "itkImageReconstructionMethod.txx"
Image< IntensityType, 3 > ReconstructionType
Definition: itkImageReconstructionMethod.h:75
ImageReconstructionMethod Self
Definition: itkImageReconstructionMethod.h:48
ReconstructionType::PixelType ReconstructionPixelType
Definition: itkImageReconstructionMethod.h:78
SmartPointer< Self > Pointer
Definition: itkImageReconstructionMetric.h:43
itk::ReconstructionUpdateCommand ReconstructionUpdateCommandType
Definition: itkImageReconstructionMethod.h:53
SmartPointer< Self > Pointer
Definition: itkProjectionGeometry.h:36
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
ReconstructionType ReconstructionOutputType
Definition: itkImageReconstructionMethod.h:103
void SetReconstructedVolumeSpacing(ReconstructionSpacingType &reconSpacing)
Definition: itkImageReconstructionMethod.h:139
ReconstructionType::RegionType ReconstructionRegionType
Definition: itkImageReconstructionMethod.h:77
void SetReconstructedVolumeOrigin(ReconstructionPointType &reconOrigin)
Definition: itkImageReconstructionMethod.h:140
Base class for Image Reconstruction Methods.
Definition: itkImageReconstructionMethod.h:44
ReconstructionUpdateCommand::Pointer ReconstructionUpdateCommandPointer
Definition: itkImageReconstructionMethod.h:54
ReconstructionType::SpacingType ReconstructionSpacingType
Definition: itkImageReconstructionMethod.h:80
Definition: niftkITKAffineResampleImage.cxx:74
itk::ProjectionGeometry< IntensityType > ProjectionGeometryType
The projection geometry type.
Definition: itkImageReconstructionMethod.h:93
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
ReconstructionType::Pointer ReconstructionPointer
Definition: itkImageReconstructionMethod.h:76
OptimizerType::Pointer OptimizerPointer
Definition: itkImageReconstructionMethod.h:86
virtual void GenerateOutputInformation() override
Definition: itkImageReconstructionMethod.h:168
ReconstructionType::SizeType ReconstructionSizeType
Definition: itkImageReconstructionMethod.h:79
Abstract class to calculate the geometry of a CT or tomo machine.
Definition: itkProjectionGeometry.h:29
ReconstructionOutputType::ConstPointer ReconstructionOutputConstPointer
Definition: itkImageReconstructionMethod.h:105
SingleValuedCostFunction::ParametersType ParametersType
Definition: itkImageReconstructionMetric.h:72
SmartPointer< Self > Pointer
Definition: itkImageReconstructionMethod.h:50
ReconstructionType::PointType ReconstructionPointType
Definition: itkImageReconstructionMethod.h:81
SmartPointer< const Self > ConstPointer
Definition: itkImageReconstructionMethod.h:51
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
void SetReconstructedVolumeSize(ReconstructionSizeType &reconSize)
Set the size, resolution and origin of the reconstructed image.
Definition: itkImageReconstructionMethod.h:138
ReconstructionType::IndexType ReconstructionIndexType
Definition: itkImageReconstructionMethod.h:82
MetricType::ParametersType ParametersType
Definition: itkImageReconstructionMethod.h:99
InputProjectionVolumeType::PointType InputProjectionVolumePointType
Definition: itkImageReconstructionMethod.h:73
InputProjectionVolumeType::SpacingType InputProjectionVolumeSpacingType
Definition: itkImageReconstructionMethod.h:72
InputProjectionVolumeType::RegionType InputProjectionVolumeRegionType
Definition: itkImageReconstructionMethod.h:69
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
MetricType::Pointer MetricPointer
Definition: itkImageReconstructionMethod.h:90
itk::SmartPointer< Self > Pointer
Definition: itkReconstructionUpdateCommand.h:41
Class to compute the difference between a reconstruction estimate and the target set of 2D projection...
Definition: itkImageReconstructionMetric.h:36
InputProjectionVolumeType::Pointer InputProjectionVolumePointer
Definition: itkImageReconstructionMethod.h:68
SingleValuedNonLinearOptimizer OptimizerType
Type of the optimizer.
Definition: itkImageReconstructionMethod.h:85
InputProjectionVolumeType::SizeType InputProjectionVolumeSizeType
Definition: itkImageReconstructionMethod.h:71
ProcessObject Superclass
Definition: itkImageReconstructionMethod.h:49
ReconstructionOutputType::Pointer ReconstructionOutputPointer
Definition: itkImageReconstructionMethod.h:104
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
ImageReconstructionMetric< IntensityType > MetricType
The type of the metric.
Definition: itkImageReconstructionMethod.h:89
InputProjectionVolumeType::PixelType InputProjectionVolumePixelType
Definition: itkImageReconstructionMethod.h:70
ProjectionGeometryType::Pointer ProjectionGeometryPointer
Definition: itkImageReconstructionMethod.h:94
Image< IntensityType, 3 > InputProjectionVolumeType
Definition: itkImageReconstructionMethod.h:60
Override this class to redefine DoExecute().
Definition: itkReconstructionUpdateCommand.h:36