15 #ifndef itkIterativeReconstructionAndRegistrationMethod_h
16 #define itkIterativeReconstructionAndRegistrationMethod_h
18 #include <itkProcessObject.h>
21 #include <itkDataObjectDecorator.h>
37 template <
class IntensityType =
double>
104 itkSetObjectMacro( RegistrationFilter, RegistrationFilterType );
105 itkGetObjectMacro( RegistrationFilter, RegistrationFilterType );
116 void SetInputFixedImageProjections( InputProjectionVolumeType *imFixedProjections);
118 void SetInputMovingImageProjections( InputProjectionVolumeType *imMovingProjections);
121 void SetFixedReconEstimate( ReconstructionType *im3D);
123 void SetMovingReconEstimate( ReconstructionType *im3D);
126 void SetReconstructedVolumeSize(ReconstructionSizeType &reconSize);
127 void SetReconstructedVolumeSpacing(ReconstructionSpacingType &reconSpacing);
128 void SetReconstructedVolumeOrigin(ReconstructionPointType &reconOrigin);
132 m_FixedImageReconstructor->SetProjectionGeometry(geometry);
133 m_MovingImageReconstructor->SetProjectionGeometry(geometry);
139 m_FixedImageReconstructor->SetMetric(metric);
144 m_MovingImageReconstructor->SetMetric(metric);
150 m_FixedImageReconstructor->SetOptimizer(optimizer);
155 m_MovingImageReconstructor->SetOptimizer(optimizer);
161 m_NumberOfReconRegnIterations =
n;
166 return m_NumberOfReconRegnIterations;
170 virtual void Initialise() throw (ExceptionObject);
173 const ReconstructionType* GetReconOutput(
unsigned int output) const;
175 const ReconstructionType* GetFixedReconOutput(
void)
const {
return GetReconOutput(0);}
180 const TransformType* GetTransformationOutput(
void)
const;
183 const ReconstructionAndRegistrationOutputType *GetReconstructedVolume()
const;
186 void GraftNthOutput(
unsigned int idx,
const itk::DataObject *graft);
190 unsigned long GetMTime()
const;
195 void PrintSelf(std::ostream& os, Indent indent)
const;
205 void StartReconstructionAndRegistration(
void);
211 void StartOptimization(
void);
215 void GenerateData ();
220 void operator=(
const Self&);
222 bool m_FlagInitialised;
226 bool m_FlagUpdateReconEstimateWithAverage;
229 unsigned int m_NumberOfReconRegnIterations;
232 ImageReconstructionMethodPointer m_FixedImageReconstructor;
233 ImageReconstructionMethodPointer m_MovingImageReconstructor;
236 ImageRegistrationFilterPointer m_RegistrationFilter;
239 ReconstructionAndRegistrationUpdateCommandPointer m_ReconstructionAndRegistrationUpdateCommand;
246 #ifndef ITK_MANUAL_INSTANTIATION
247 #include "itkIterativeReconstructionAndRegistrationMethod.txx"
ReconstructionAndRegistrationOutputType::ConstPointer ReconstructionAndRegistrationOutputConstPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:95
SmartPointer< Self > Pointer
Definition: itkImageReconstructionMetric.h:43
virtual ~IterativeReconstructionAndRegistrationMethod()
Definition: itkIterativeReconstructionAndRegistrationMethod.h:194
ReconstructionOptimizerType::Pointer ReconstructionOptimizerPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:73
virtual void GenerateOutputInformation()
Definition: itkIterativeReconstructionAndRegistrationMethod.h:199
SmartPointer< Self > Pointer
Definition: itkProjectionGeometry.h:36
ReconstructionType::Pointer ReconstructionPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:69
ReconstructionType::IndexType ReconstructionIndexType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:66
void SetMovingReconstructionOptimizer(ReconstructionOptimizerType *optimizer)
Set the moving image reconstruction optimizer.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:154
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
Used to plug registration methods into a filter based pipeline.
Definition: itkImageRegistrationFilter.h:59
Base class for Image Reconstruction Methods.
Definition: itkImageReconstructionMethod.h:44
void SetNumberOfReconRegnIterations(unsigned int n)
Set the number of combined registration-reconstruction iterations to perform.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:160
ImageReconstructionMethodType::ReconstructionType ReconstructionType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:62
itk::SmartPointer< Self > Pointer
Definition: itkReconstructionAndRegistrationUpdateCommand.h:41
RegistrationFilterType::TransformType TransformType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:88
Definition: niftkITKAffineResampleImage.cxx:74
SmartPointer< Self > Pointer
Definition: itkImageRegistrationFilter.h:66
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
ImageReconstructionMethodType::MetricType ReconstructionMetricType
The type of the metric.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:76
void GetNumberOfReconRegnIterations(void)
Get the number of combined registration-reconstruction iterations to perform.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:165
itk::ImageReconstructionMethod< IntensityType > ImageReconstructionMethodType
Define the reconstruction types.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:54
TransformOutputType::Pointer TransformOutputPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:100
void SetFixedReconstructionOptimizer(ReconstructionOptimizerType *optimizer)
Set the fixed image reconstruction optimizer.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:149
ReconstructionMetricType::Pointer ReconstructionMetricPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:77
IterativeReconstructionAndRegistrationMethod Self
Definition: itkIterativeReconstructionAndRegistrationMethod.h:42
itk::ImageRegistrationFilter< ReconstructionType, ReconstructionType, 3, double, float > RegistrationFilterType
Define the registration filter type.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:85
ProjectionGeometryType::Pointer ProjectionGeometryPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:81
Abstract class to calculate the geometry of a CT or tomo machine.
Definition: itkProjectionGeometry.h:29
SmartPointer< Self > Pointer
Definition: itkImageReconstructionMethod.h:50
SmartPointer< const Self > ConstPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:45
bool GetFlagUpdateReconEstimateWithAverage(void)
Definition: itkIterativeReconstructionAndRegistrationMethod.h:109
ImageReconstructionMethodType::Pointer ImageReconstructionMethodPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:60
itk::ReconstructionAndRegistrationUpdateCommand ReconstructionAndRegistrationUpdateCommandType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:47
DataObjectDecorator< TransformType > TransformOutputType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:99
void SetFixedReconstructionMetric(ReconstructionMetricType *metric)
Set the fixed image reconstruction metric.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:138
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
void SetFlagUpdateReconEstimateWithAverage(bool flag)
Definition: itkIterativeReconstructionAndRegistrationMethod.h:108
Override this class to redefine DoExecute().
Definition: itkReconstructionAndRegistrationUpdateCommand.h:36
SmartPointer< Self > Pointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:44
ReconstructionAndRegistrationOutputType::Pointer ReconstructionAndRegistrationOutputPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:94
Class to compute the difference between a reconstruction estimate and the target set of 2D projection...
Definition: itkImageReconstructionMetric.h:36
ReconstructionType ReconstructionAndRegistrationOutputType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:93
ProcessObject Superclass
Definition: itkIterativeReconstructionAndRegistrationMethod.h:43
const ReconstructionType * GetMovingReconOutput(void) const
Definition: itkIterativeReconstructionAndRegistrationMethod.h:177
SingleValuedNonLinearOptimizer OptimizerType
Type of the optimizer.
Definition: itkImageReconstructionMethod.h:85
Base class for iterative image reconstruction and registration methods.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:38
void SetProjectionGeometry(ProjectionGeometryType *geometry)
Set the Projection Geometry.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:131
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
ReconstructionType::SpacingType ReconstructionSpacingType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:67
GLclampd n
Definition: glew.h:6789
RegistrationFilterType::Pointer ImageRegistrationFilterPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:87
ReconstructionType::SizeType ReconstructionSizeType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:65
SingleResType::TransformType TransformType
Definition: itkImageRegistrationFilter.h:86
ImageReconstructionMethodType::InputProjectionVolumeType InputProjectionVolumeType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:61
ReconstructionType::PointType ReconstructionPointType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:68
ReconstructionAndRegistrationUpdateCommand::Pointer ReconstructionAndRegistrationUpdateCommandPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:48
TransformOutputType::ConstPointer TransformOutputConstPointer
Definition: itkIterativeReconstructionAndRegistrationMethod.h:101
ReconstructionType::RegionType ReconstructionRegionType
Definition: itkIterativeReconstructionAndRegistrationMethod.h:64
void SetMovingReconstructionMetric(ReconstructionMetricType *metric)
Set the moving image reconstruction metric.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:143
ImageReconstructionMethodType::ProjectionGeometryType ProjectionGeometryType
The projection geometry type.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:80
ImageReconstructionMethodType::OptimizerType ReconstructionOptimizerType
Type of the optimizer.
Definition: itkIterativeReconstructionAndRegistrationMethod.h:72