15 #ifndef itkMultiResolutionImageRegistrationWrapper_h
16 #define itkMultiResolutionImageRegistrationWrapper_h
18 #include <itkProcessObject.h>
19 #include <itkNumericTraits.h>
20 #include <itkDataObjectDecorator.h>
21 #include <itkImageToImageMetric.h>
22 #include <itkSingleValuedNonLinearOptimizer.h>
23 #include <itkRecursiveMultiResolutionPyramidImageFilter.h>
25 #include <itkBinaryThresholdImageFilter.h>
40 template <
typename TInputImageType,
class TPyram
idFilter = RecursiveMultiResolutionPyram
idImageFilter< TInputImageType, TInputImageType > >
68 typedef ImageToImageMetric< InputImageType, InputImageType >
MetricType;
108 virtual void StartRegistration();
111 virtual void StopRegistration();
114 itkSetObjectMacro( SingleResMethod, SingleResType );
115 itkGetObjectMacro( SingleResMethod, SingleResType );
118 itkSetConstObjectMacro( FixedImage, InputImageType );
119 itkGetConstObjectMacro( FixedImage, InputImageType );
122 itkSetConstObjectMacro( FixedMask, InputImageType );
123 itkGetConstObjectMacro( FixedMask, InputImageType );
126 itkSetConstObjectMacro( MovingImage, InputImageType );
127 itkGetConstObjectMacro( MovingImage, InputImageType );
130 itkSetConstObjectMacro( MovingMask, InputImageType );
131 itkGetConstObjectMacro( MovingMask, InputImageType );
134 itkSetMacro( NumberOfLevels,
unsigned int );
135 itkGetMacro( NumberOfLevels,
unsigned int );
140 itkSetMacro ( StartLevel,
unsigned int);
141 itkGetMacro ( StartLevel,
unsigned int);
146 itkSetMacro ( StopLevel,
unsigned int);
147 itkGetMacro ( StopLevel,
unsigned int);
150 itkGetMacro( CurrentLevel,
unsigned int );
157 this->m_InitialTransformParametersOfNextLevel = parameters;
161 return this->m_InitialTransformParametersOfNextLevel;
169 itkSetMacro( InitialTransformParametersOfNextLevel, ParametersType );
170 itkGetConstReferenceMacro( InitialTransformParametersOfNextLevel, ParametersType );
179 return this->m_SingleResMethod->GetLastTransformParameters();
183 const TransformOutputType * GetOutput()
const;
187 virtual DataObjectPointer MakeOutput(
unsigned int idx);
191 unsigned long GetMTime()
const override;
197 this->m_Schedule = schedule;
198 this->m_UserSpecifiedSchedule =
true;
204 itkSetMacro ( MaskBeforePyramid,
bool);
205 itkGetMacro ( MaskBeforePyramid,
bool);
207 itkSetMacro (UseOriginalImageAtFinalLevel,
bool);
208 itkGetMacro (UseOriginalImageAtFinalLevel,
bool);
210 itkSetMacro (IsAutoAdjustMovingSamping,
bool);
211 itkGetMacro (IsAutoAdjustMovingSamping,
bool);
216 void PrintSelf(std::ostream& os, Indent indent)
const override;
221 void GenerateData ()
override;
226 virtual void PreparePyramids();
232 virtual void Initialize() throw (ExceptionObject);
238 virtual
void BeforeSingleResolutionRegistration() {};
244 virtual void AfterSingleResolutionRegistration() {};
246 unsigned int m_NumberOfLevels;
284 void operator=(
const Self&);
292 #ifndef ITK_MANUAL_INSTANTIATION
293 #include "itkMultiResolutionImageRegistrationWrapper.txx"
ImagePyramidPointer m_MovingMaskPyramid
Definition: itkMultiResolutionImageRegistrationWrapper.h:267
ImagePyramidPointer m_MovingImagePyramid
Definition: itkMultiResolutionImageRegistrationWrapper.h:266
ImagePyramidType::ScheduleType ScheduleType
Definition: itkMultiResolutionImageRegistrationWrapper.h:105
ParametersType m_InitialTransformParametersOfNextLevel
Definition: itkMultiResolutionImageRegistrationWrapper.h:250
Base class for NifTK Image Registration Methods employing a binary mask.
Definition: itkMaskedImageRegistrationMethod.h:55
SingleResPointer m_SingleResMethod
Definition: itkMultiResolutionImageRegistrationWrapper.h:251
ThresholdFilterPointer m_FixedMaskThresholder
Definition: itkMultiResolutionImageRegistrationWrapper.h:269
SmartPointer< const Self > ConstPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:48
ScheduleType * m_Schedule
Definition: itkMultiResolutionImageRegistrationWrapper.h:274
InterpolatorType::Pointer InterpolatorPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:83
ThresholdFilterPointer m_MovingMaskThresholder
Definition: itkMultiResolutionImageRegistrationWrapper.h:270
virtual ~MultiResolutionImageRegistrationWrapper()
Definition: itkMultiResolutionImageRegistrationWrapper.h:215
DataObjectDecorator< TransformType > TransformOutputType
Definition: itkMultiResolutionImageRegistrationWrapper.h:77
TransformOutputType::ConstPointer TransformOutputConstPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:79
virtual void SetInitialTransformParameters(const ParametersType ¶meters)
Definition: itkMultiResolutionImageRegistrationWrapper.h:155
Definition: niftkITKAffineResampleImage.cxx:74
TPyramidFilter ImagePyramidType
Definition: itkMultiResolutionImageRegistrationWrapper.h:93
unsigned int m_CurrentLevel
Definition: itkMultiResolutionImageRegistrationWrapper.h:249
itk::EulerAffineTransform< double, 2, 2 > TransformType
Definition: EulerAffine2DJacobianTest.cxx:27
virtual const ParametersType & GetInitialTransformParameters() const
Definition: itkMultiResolutionImageRegistrationWrapper.h:159
bool m_UserSpecifiedSchedule
Definition: itkMultiResolutionImageRegistrationWrapper.h:257
ImageToImageMetric< InputImageType, InputImageType > MetricType
Definition: itkMultiResolutionImageRegistrationWrapper.h:68
ImagePyramidType::ScheduleType ImagePyramidScheduleType
Definition: itkMultiResolutionImageRegistrationWrapper.h:95
DataObject::Pointer DataObjectPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:102
InputImageType::ConstPointer InputImageConstPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:64
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
bool m_MaskBeforePyramid
Definition: itkMultiResolutionImageRegistrationWrapper.h:276
bool m_IsAutoAdjustMovingSamping
Definition: itkMultiResolutionImageRegistrationWrapper.h:280
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
MaskedImageRegistrationMethod< TInputImageType > SingleResType
Definition: itkMultiResolutionImageRegistrationWrapper.h:54
ThresholdFilterType::Pointer ThresholdFilterPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:90
bool m_Stop
Definition: itkMultiResolutionImageRegistrationWrapper.h:272
ImagePyramidType::Pointer ImagePyramidPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:94
BinaryThresholdImageFilter< InputImageType, InputImageType > ThresholdFilterType
Definition: itkMultiResolutionImageRegistrationWrapper.h:89
unsigned int m_StartLevel
Definition: itkMultiResolutionImageRegistrationWrapper.h:247
ProcessObject Superclass
Definition: itkMultiResolutionImageRegistrationWrapper.h:46
InputImageConstPointer m_FixedImage
Definition: itkMultiResolutionImageRegistrationWrapper.h:259
InputImageConstPointer m_MovingMask
Definition: itkMultiResolutionImageRegistrationWrapper.h:262
ImagePyramidPointer m_FixedMaskPyramid
Definition: itkMultiResolutionImageRegistrationWrapper.h:265
SingleResType::Pointer SingleResPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:58
ScheduleType * GetSchedule()
Definition: itkMultiResolutionImageRegistrationWrapper.h:194
MultiResolutionImageRegistrationWrapper Self
Definition: itkMultiResolutionImageRegistrationWrapper.h:45
InputImageConstPointer m_MovingImage
Definition: itkMultiResolutionImageRegistrationWrapper.h:261
InputImageType::RegionType InputImageRegionType
Definition: itkMultiResolutionImageRegistrationWrapper.h:65
InputImageConstPointer m_FixedMask
Definition: itkMultiResolutionImageRegistrationWrapper.h:260
TInputImageType InputImageType
Definition: itkMultiResolutionImageRegistrationWrapper.h:61
unsigned int m_StopLevel
Definition: itkMultiResolutionImageRegistrationWrapper.h:248
MetricType::Pointer MetricPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:69
void SetSchedule(ScheduleType *schedule)
Definition: itkMultiResolutionImageRegistrationWrapper.h:195
virtual const ParametersType & GetLastTransformParameters() const
Definition: itkMultiResolutionImageRegistrationWrapper.h:177
ImagePyramidPointer m_FixedImagePyramid
Definition: itkMultiResolutionImageRegistrationWrapper.h:264
MetricType::TransformParametersType ParametersType
Definition: itkMultiResolutionImageRegistrationWrapper.h:99
MetricType::InterpolatorType InterpolatorType
Definition: itkMultiResolutionImageRegistrationWrapper.h:82
TransformOutputType::Pointer TransformOutputPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:78
InputImageType::PixelType InputImagePixelType
Definition: itkMultiResolutionImageRegistrationWrapper.h:62
SingleValuedNonLinearOptimizer OptimizerType
Definition: itkMultiResolutionImageRegistrationWrapper.h:86
TransformType::Pointer TransformPointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:73
SmartPointer< Self > Pointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:47
InputImageType::Pointer InputImagePointer
Definition: itkMultiResolutionImageRegistrationWrapper.h:63
UCL Base class for multi-resolution image registration methods.
Definition: itkMultiResolutionImageRegistrationWrapper.h:41
MetricType::TransformType TransformType
Definition: itkMultiResolutionImageRegistrationWrapper.h:72
bool m_UseOriginalImageAtFinalLevel
Definition: itkMultiResolutionImageRegistrationWrapper.h:256