13 #ifndef mitkMultiModalTransDefaultRegistrationAlgorithm_h
14 #define mitkMultiModalTransDefaultRegistrationAlgorithm_h
16 #include <mapDiscreteElements.h>
17 #include <mapITKTransMattesMIMultiResRegistrationAlgorithm.h>
18 #include <mapConfigure.h>
44 template<
class TImageType>
46 public map::algorithm::boxed::ITKTransMattesMIMultiResRegistrationAlgorithm<TImageType, TImageType, ::map::algorithm::mitkMultiModalTransDefaultRegistrationAlgorithmUIDPolicy, SealedFixedInterpolatorPolicyMacro< ::itk::LinearInterpolateImageFunction<TImageType, map::core::continuous::ScalarType> >, map::algorithm::itk::NoComponentInitializationPolicy>
51 typedef map::algorithm::boxed::ITKTransMattesMIMultiResRegistrationAlgorithm<TImageType, TImageType, ::map::algorithm::mitkMultiModalTransDefaultRegistrationAlgorithmUIDPolicy, SealedFixedInterpolatorPolicyMacro< ::itk::LinearInterpolateImageFunction<TImageType, map::core::continuous::ScalarType> >, map::algorithm::itk::NoComponentInitializationPolicy>
54 typedef ::itk::SmartPointer<Self>
Pointer;
58 ITKEuler3DMattesMIMultiResRegistrationAlgorithm);
80 Superclass::configureAlgorithm();
82 this->setResolutionLevels(3);
83 this->_preInitialize =
true;
84 this->_useCenterOfGravity =
false;
87 typename Superclass::ConcreteOptimizerType::ScalesType scales(3);
92 this->getConcreteOptimizerControl()->getConcreteOptimizer()->SetScales(scales);
93 this->getConcreteOptimizerControl()->getConcreteOptimizer()->SetMaximumStepLength(3.00);
94 this->getConcreteOptimizerControl()->getConcreteOptimizer()->SetMinimumStepLength(0.5);
95 this->getConcreteOptimizerControl()->getConcreteOptimizer()->SetNumberOfIterations(200);
96 this->getConcreteOptimizerControl()->getConcreteOptimizer()->SetRelaxationFactor(0.8);
97 this->getConcreteOptimizerControl()->getConcreteOptimizer()->SetGradientMagnitudeTolerance(1e-4);
100 this->getConcreteMetricControl()->getConcreteMetric()->SetNumberOfHistogramBins(30);
101 this->getConcreteMetricControl()->getConcreteMetric()->SetUseAllPixels(
true);
102 this->getConcreteMetricControl()->getConcreteMetric()->ReinitializeSeed();
103 this->getConcreteMetricControl()->getConcreteMetric()->UseExplicitPDFDerivativesOn();
115 Superclass::doInterLevelSetup();
117 if (this->getCurrentLevel() != 0)
119 this->getConcreteMetricControl()->getConcreteMetric()->SetUseAllPixels(
false);
121 unsigned int nrOfSmpl = ::itk::Math::Round<unsigned int, double>
122 (this->getMovingImage()->GetLargestPossibleRegion().GetNumberOfPixels() * 0.15);
124 this->getConcreteMetricControl()->getConcreteMetric()->SetNumberOfSpatialSamples(nrOfSmpl);
131 void operator=(
const Self&);
Default multimodal translation-only registration algorithm for MITK.
mapNewAlgorithmMacro(Self)
~MultiModalTranslationDefaultRegistrationAlgorithm() override
MultiModalTranslationDefaultRegistrationAlgorithm()
void doInterLevelSetup() override
Adjust spatial sampling between resolution levels.
map::algorithm::boxed::ITKTransMattesMIMultiResRegistrationAlgorithm< TImageType, TImageType, ::map::algorithm::mitkMultiModalTransDefaultRegistrationAlgorithmUIDPolicy, SealedFixedInterpolatorPolicyMacro< ::itk::LinearInterpolateImageFunction< TImageType, map::core::continuous::ScalarType > >, map::algorithm::itk::NoComponentInitializationPolicy > Superclass
void configureAlgorithm() override
Configure the algorithm with default parameters.
::itk::SmartPointer< Self > Pointer
::itk::SmartPointer< const Self > ConstPointer
MultiModalTranslationDefaultRegistrationAlgorithm Self
Find image slices visible on a given plane.