17 #ifndef MITKPYRAMIDIMAGEREGISTRATION_H
18 #define MITKPYRAMIDIMAGEREGISTRATION_H
22 #include <itkObject.h>
23 #include "itkImageMaskSpatialObject.h"
24 #include "itkNotImageFilter.h"
25 #include <itkCenteredVersorTransformInitializer.h>
26 #include <vnl/vnl_matrix_fixed.h>
32 #include <itkWindowedSincInterpolateImageFunction.h>
67 itkFactorylessNewMacro(Self)
79 void SetCrossModalityOn()
81 m_CrossModalityRegistration =
true;
87 m_CrossModalityRegistration =
false;
94 this->SetCrossModalityOn();
96 this->SetCrossModalityOff();
106 this->SetVerboseOn();
108 this->SetVerboseOff();
126 m_UseAffineTransform =
false;
132 m_UseAffineTransform =
true;
150 m_InitializeByGeometry = flag;
162 unsigned int retValue = 12;
163 if(!m_UseAffineTransform)
175 if( m_EstimatedParameters == NULL )
177 mitkThrow() <<
"No parameters were estimated yet, call Update() first.";
180 unsigned int dim = 12;
181 if( !m_UseAffineTransform )
184 for(
unsigned int i=0; i<dim; i++)
186 *(paramArray+i) = m_EstimatedParameters[i];
197 if( m_EstimatedParameters == NULL )
199 mitkThrow() <<
"No parameters were estimated yet, call Update() first.";
202 unsigned int dim = 12;
203 if( !m_UseAffineTransform )
208 params.SetData( m_EstimatedParameters );
220 m_InitialParameters = params;
235 m_UseWindowedSincInterpolator = flag;
249 m_UseNearestNeighborInterpolator = flag;
281 TransformMatrixType GetLastRotationMatrix();
324 template <
typename TPixel1,
unsigned int VImageDimension1,
typename TPixel2,
unsigned int VImageDimension2>
325 void RegisterTwoImagesV4(itk::Image<TPixel1, VImageDimension1>* itkImage1, itk::Image<TPixel2, VImageDimension2>* itkImage2);
333 template<
typename TPixel,
unsigned int VDimension>
334 void ResampleMitkImage( itk::Image<TPixel, VDimension>* itkImage,
341 #endif // MITKPYRAMIDIMAGEREGISTRATION_H
void SetTransformToAffine()
void GetParameters(double *paramArray)
Copies the estimated parameters to the given array.
void SetCrossModality(bool flag)
ParametersType GetLastRegistrationParameters()
Retrieve the parameters of the last registration computed.
double * m_EstimatedParameters
void SetVerbose(bool flag)
mitk::Image::Pointer m_FixedImageMask
itk::OptimizerParameters< double > ParametersType
bool m_UseWindowedSincInterpolator
void SetUseFixedImageMask(bool flag)
Set if fixed image mask is used to exclude a region.
bool m_InitializeByGeometry
static void Update(vtkPolyData *)
itk::Euler3DTransform< double > RigidTransformType
DataCollection - Class to facilitate loading/accessing structured data.
The PyramidImageRegistration class implements a multi-scale registration method.
#define MITKDIFFUSIONCORE_EXPORT
This class is used to hold all optimizer parameters needed for a rigid registration process...
void SetTransformToRigid()
#define mitkClassMacroItkParent(className, SuperClassName)
bool m_UseAffineTransform
mitk::Image::Pointer m_MovingImage
void SetUseNearestNeighborInterpolation(bool flag)
Control the interpolator used for resampling.
itk::AffineTransform< double > AffineTransformType
vnl_matrix_fixed< double, 3, 3 > TransformMatrixType
void SetCrossModalityOff()
void SetInitialParameters(ParametersType ¶ms)
Set the starting position of the registration.
ParametersType m_InitialParameters
unsigned int GetNumberOfParameters()
Get the number of parameters optimized ( 12 or 6 )
bool m_UseNearestNeighborInterpolator
void SetInitializeByGeometry(bool flag)
Use the itk::CenteredVersorTransformInitializer to perform initialization step for the registration...
void SetUseAdvancedInterpolation(bool flag)
Control the interpolator used for resampling.
mitk::Image::Pointer m_FixedImage
bool m_CrossModalityRegistration