15 #ifndef itkMatrixBasedSimulReconRegnMethod_h
16 #define itkMatrixBasedSimulReconRegnMethod_h
18 #include <itkProcessObject.h>
22 #include <itkSingleValuedNonLinearOptimizer.h>
26 #include <itkEulerAffineTransformMatrixAndItsVariations.h>
45 template <
class IntensityType =
double>
106 itkSetObjectMacro( Optimizer, OptimizerType );
107 itkGetObjectMacro( Optimizer, OptimizerType );
110 itkSetObjectMacro( Metric, MetricType );
111 itkGetObjectMacro( Metric, MetricType );
122 void SetReconEstimate( MatrixFormReconstructionType *im3D);
125 void SetAffineEstimate( EulerAffineTransformType *affinePara);
128 void UpdateReconstructionEstimate( MatrixFormReconstructionType *im3D);
132 void UpdateInitialParameters(
void);
137 void UpdateReconstructionEstimateWithAverage( MatrixFormReconstructionType *im3D);
140 bool SetInputProjectionVolume( MatrixFormReconstructionType *im2D);
149 virtual void Initialise() throw (ExceptionObject);
153 MatrixFormReconstructionType *GetInput();
157 MatrixFormReconstructionOutputType *GetOutput();
160 MatrixFormReconstructionOutputType *GetReconstructedVolume()
const;
164 virtual DataObjectPointer MakeOutput(
unsigned int idx);
168 unsigned long GetMTime()
const;
173 void PrintSelf(std::ostream& os, Indent indent)
const;
183 void StartMatrixFormReconstruction(
void);
189 void StartOptimization(
void);
193 void GenerateData ();
198 void operator=(
const Self&);
200 bool m_FlagInitialised;
202 OptimizerPointer m_Optimizer;
203 MetricPointer m_Metric;
204 ProjectionGeometryPointer m_ProjectionGeometry;
206 MatrixFormReconstructionPointer m_VolumeEstimate;
207 EulerAffineTransformPointer m_EulerAffineEstimate;
209 ParametersType m_InitialParameters;
210 ParametersType m_LastParameters;
212 MatrixFormReconstructionSizeType m_ReconstructedVolumeSize;
213 MatrixFormReconstructionSpacingType m_ReconstructedVolumeSpacing;
214 MatrixFormReconstructionPointType m_ReconstructedVolumeOrigin;
217 ReconstructionUpdateCommandPointer m_ReconstructionUpdateCommand;
224 #ifndef ITK_MANUAL_INSTANTIATION
225 #include "itkMatrixBasedSimulReconRegnMethod.txx"
MatrixBasedSimulReconRegnMetric< double > MetricType
The type of the metric.
Definition: itkMatrixBasedSimulReconRegnMethod.h:87
SmartPointer< Self > Pointer
Definition: itkMatrixBasedSimulReconRegnMetric.h:44
SingleValuedCostFunction::ParametersType ParametersType
Definition: itkMatrixBasedSimulReconRegnMetric.h:83
SmartPointer< Self > Pointer
Definition: itkProjectionGeometry.h:36
itk::ReconstructionUpdateCommand ReconstructionUpdateCommandType
Definition: itkMatrixBasedSimulReconRegnMethod.h:55
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
MetricType::Pointer MetricPointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:88
virtual void GenerateOutputInformation()
Definition: itkMatrixBasedSimulReconRegnMethod.h:177
Base class for Image Reconstruction Methods.
Definition: itkMatrixBasedSimulReconRegnMethod.h:46
Definition: niftkITKAffineResampleImage.cxx:74
Image< IntensityType, 3 > MatrixFormReconstructionType
Definition: itkMatrixBasedSimulReconRegnMethod.h:62
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
MatrixFormReconstructionType::RegionType MatrixFormReconstructionRegionType
Definition: itkMatrixBasedSimulReconRegnMethod.h:71
SmartPointer< const Self > ConstPointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:53
MatrixFormReconstructionType MatrixFormReconstructionOutputType
Definition: itkMatrixBasedSimulReconRegnMethod.h:101
MatrixFormReconstructionType::SpacingType MatrixFormReconstructionSpacingType
Definition: itkMatrixBasedSimulReconRegnMethod.h:74
Class to compute the difference between a reconstruction estimate and the target set of 2D projection...
Definition: itkMatrixBasedSimulReconRegnMetric.h:37
void SetMatrixFormReconstructedVolumeOrigin(MatrixFormReconstructionPointType &reconOrigin)
Definition: itkMatrixBasedSimulReconRegnMethod.h:146
ReconstructionUpdateCommand::Pointer ReconstructionUpdateCommandPointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:56
Abstract class to calculate the geometry of a CT or tomo machine.
Definition: itkProjectionGeometry.h:29
itk::EulerAffineTransformMatrixAndItsVariations< double > AffineTransformerType
Definition: itkMatrixBasedSimulReconRegnMethod.h:78
ProjectionGeometryType::Pointer ProjectionGeometryPointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:92
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
void SetMatrixFormReconstructedVolumeSpacing(MatrixFormReconstructionSpacingType &reconSpacing)
Definition: itkMatrixBasedSimulReconRegnMethod.h:145
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
void SetMatrixFormReconstructedVolumeSize(MatrixFormReconstructionSizeType &reconSize)
Set the size, resolution and origin of the reconstructed image.
Definition: itkMatrixBasedSimulReconRegnMethod.h:144
OptimizerType::Pointer OptimizerPointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:84
itk::SmartPointer< Self > Pointer
Definition: itkReconstructionUpdateCommand.h:41
MatrixBasedSimulReconRegnMethod Self
Definition: itkMatrixBasedSimulReconRegnMethod.h:50
SingleValuedNonLinearOptimizer OptimizerType
Type of the optimizer.
Definition: itkMatrixBasedSimulReconRegnMethod.h:83
itk::ProjectionGeometry< double > ProjectionGeometryType
The projection geometry type.
Definition: itkMatrixBasedSimulReconRegnMethod.h:91
virtual ~MatrixBasedSimulReconRegnMethod()
Definition: itkMatrixBasedSimulReconRegnMethod.h:172
MatrixFormReconstructionType::Pointer MatrixFormReconstructionPointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:70
MatrixFormReconstructionType::IndexType MatrixFormReconstructionIndexType
Definition: itkMatrixBasedSimulReconRegnMethod.h:76
AffineTransformerType::EulerAffineTransformType EulerAffineTransformType
Definition: itkMatrixBasedSimulReconRegnMethod.h:79
MatrixFormReconstructionType::PointType MatrixFormReconstructionPointType
Definition: itkMatrixBasedSimulReconRegnMethod.h:75
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
SmartPointer< Self > Pointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:52
MetricType::ParametersType ParametersType
Definition: itkMatrixBasedSimulReconRegnMethod.h:97
ProcessObject Superclass
Definition: itkMatrixBasedSimulReconRegnMethod.h:51
MatrixFormReconstructionOutputType::ConstPointer MatrixFormReconstructionOutputConstPointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:103
EulerAffineTransformType::Pointer EulerAffineTransformPointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:80
MatrixFormReconstructionOutputType::Pointer MatrixFormReconstructionOutputPointer
Definition: itkMatrixBasedSimulReconRegnMethod.h:102
MatrixFormReconstructionType::PixelType MatrixFormReconstructionPixelType
Definition: itkMatrixBasedSimulReconRegnMethod.h:72
Override this class to redefine DoExecute().
Definition: itkReconstructionUpdateCommand.h:36
MatrixFormReconstructionType::SizeType MatrixFormReconstructionSizeType
Definition: itkMatrixBasedSimulReconRegnMethod.h:73