16 #ifndef itkSimultaneousReconstructionAndRegistrationMethod_h
17 #define itkSimultaneousReconstructionAndRegistrationMethod_h
19 #include <itkProcessObject.h>
22 #include <itkSingleValuedNonLinearOptimizer.h>
44 template <
class IntensityType =
double>
109 itkSetObjectMacro( Optimizer, OptimizerType );
110 itkGetObjectMacro( Optimizer, OptimizerType );
113 itkSetObjectMacro( Metric, MetricType );
114 itkGetObjectMacro( Metric, MetricType );
125 void SetReconEstimate( ReconstructionType *im3D);
128 void UpdateReconstructionEstimate( ReconstructionType *im3D);
131 void UpdateReconstructionEstimateWithAverage( ReconstructionType *im3D);
133 void UpdateInitialParameters(
void);
136 bool SetInputFixedImageProjections( InputProjectionVolumeType *imFixedProjections);
138 bool SetInputMovingImageProjections( InputProjectionVolumeType *imMovingProjections);
146 virtual void Initialise() throw (ExceptionObject);
149 InputProjectionVolumeType *GetInput();
151 ReconstructionOutputType *GetOutput();
154 ReconstructionOutputType *GetReconstructedVolume() const;
158 virtual DataObjectPointer MakeOutput(
unsigned int idx);
162 unsigned long GetMTime() const;
165 void SetFlagUpdateReconEstimateWithAverage(
bool flag) {m_FlagUpdateReconEstimateWithAverage = flag; this->Modified();}
170 m_NumberOfReconRegnIterations =
n;
175 return m_NumberOfReconRegnIterations;
181 void PrintSelf(std::ostream& os, Indent indent)
const;
191 void StartReconstruction(
void);
197 void StartOptimization(
void);
201 void GenerateData ();
206 void operator=(
const Self&);
208 bool m_FlagInitialised;
210 OptimizerPointer m_Optimizer;
211 MetricPointer m_Metric;
212 ProjectionGeometryPointer m_ProjectionGeometry;
214 InputProjectionVolumePointer m_ProjectionImagesFixed;
215 InputProjectionVolumePointer m_ProjectionImagesMoving;
216 ReconstructionPointer m_EnhancedAsOneReconstructor;
218 ParametersType m_InitialParameters;
219 ParametersType m_LastParameters;
221 ReconstructionSizeType m_ReconstructedVolumeSize;
222 ReconstructionSpacingType m_ReconstructedVolumeSpacing;
223 ReconstructionPointType m_ReconstructedVolumeOrigin;
227 bool m_FlagUpdateReconEstimateWithAverage;
230 unsigned int m_NumberOfReconRegnIterations;
233 SimultaneousReconAndRegnUpdateCommandPointer m_SimultaneousReconAndRegnUpdateCommand;
240 #ifndef ITK_MANUAL_INSTANTIATION
241 #include "itkSimultaneousReconstructionAndRegistrationMethod.txx"
void GetNumberOfReconRegnIterations(void)
Get the number of combined registration-reconstruction iterations to perform.
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:174
InputProjectionVolumeType::SizeType InputProjectionVolumeSizeType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:72
InputProjectionVolumeType::SpacingType InputProjectionVolumeSpacingType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:73
SmartPointer< Self > Pointer
Definition: itkProjectionGeometry.h:36
InputProjectionVolumeType::PointType InputProjectionVolumePointType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:74
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
SimultaneousReconstructionAndRegistrationMethod Self
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:49
Override this class to redefine DoExecute().
Definition: itkSimultaneousReconAndRegnUpdateCommand.h:36
ProcessObject Superclass
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:50
ProjectionGeometryType::Pointer ProjectionGeometryPointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:95
ReconstructionType::PixelType ReconstructionPixelType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:79
ReconstructionType::SpacingType ReconstructionSpacingType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:81
Definition: niftkITKAffineResampleImage.cxx:74
virtual void GenerateOutputInformation()
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:185
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
InputProjectionVolumeType::Pointer InputProjectionVolumePointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:69
ReconstructionType::PointType ReconstructionPointType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:82
virtual ~SimultaneousReconstructionAndRegistrationMethod()
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:180
void SetReconstructedVolumeOrigin(ReconstructionPointType &reconOrigin)
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:143
ReconstructionType::Pointer ReconstructionPointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:77
bool GetFlagUpdateReconEstimateWithAverage(void)
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:166
Abstract class to calculate the geometry of a CT or tomo machine.
Definition: itkProjectionGeometry.h:29
itk::SimultaneousReconAndRegnUpdateCommand SimultaneousReconAndRegnUpdateCommandType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:54
void SetReconstructedVolumeSize(ReconstructionSizeType &reconSize)
Set the size, resolution and origin of the reconstructed image.
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:141
MetricType::ParametersType ParametersType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:100
SmartPointer< Self > Pointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:51
ReconstructionType::RegionType ReconstructionRegionType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:78
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
Base class for Image Reconstruction Methods.
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:45
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
MetricType::Pointer MetricPointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:91
OptimizerType::Pointer OptimizerPointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:87
SimultaneousReconstructionRegistrationMetric< IntensityType > MetricType
The type of the metric.
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:90
Image< IntensityType, 3 > ReconstructionType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:76
SimultaneousReconAndRegnUpdateCommand::Pointer SimultaneousReconAndRegnUpdateCommandPointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:55
SmartPointer< const Self > ConstPointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:52
InputProjectionVolumeType::RegionType InputProjectionVolumeRegionType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:70
ReconstructionOutputType::Pointer ReconstructionOutputPointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:105
ReconstructionType::IndexType ReconstructionIndexType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:83
ReconstructionOutputType::ConstPointer ReconstructionOutputConstPointer
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:106
SmartPointer< Self > Pointer
Definition: itkSimultaneousReconstructionRegistrationMetric.h:44
Class to compute the difference between a reconstruction estimate and the target set of 2D projection...
Definition: itkSimultaneousReconstructionRegistrationMetric.h:37
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
GLclampd n
Definition: glew.h:6789
InputProjectionVolumeType::PixelType InputProjectionVolumePixelType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:71
void SetNumberOfReconRegnIterations(unsigned int n)
Set the number of combined registration-reconstruction iterations to perform.
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:169
itk::ProjectionGeometry< IntensityType > ProjectionGeometryType
The projection geometry type.
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:94
Image< IntensityType, 3 > InputProjectionVolumeType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:61
ReconstructionType ReconstructionOutputType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:104
ReconstructionType::SizeType ReconstructionSizeType
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:80
SingleValuedNonLinearOptimizer OptimizerType
Type of the optimizer.
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:86
SingleValuedCostFunction::ParametersType ParametersType
Definition: itkSimultaneousReconstructionRegistrationMetric.h:73
void SetReconstructedVolumeSpacing(ReconstructionSpacingType &reconSpacing)
Definition: itkSimultaneousReconstructionAndRegistrationMethod.h:142
itk::SmartPointer< Self > Pointer
Definition: itkSimultaneousReconAndRegnUpdateCommand.h:41