#include <mitkRegistrationInterfaceCommand.h>
Public Types | |
| typedef RegistrationInterfaceCommand | Self |
| typedef itk::Command | Superclass |
| typedef itk::SmartPointer< Self > | Pointer |
| typedef itk::MultiResolutionImageRegistrationMethod < itk::Image< float, 3 > , itk::Image< float, 3 > > | RegistrationType |
| typedef RegistrationType * | RegistrationPointer |
| typedef itk::SingleValuedNonLinearOptimizer | OptimizerType |
| typedef OptimizerType * | OptimizerPointer |
| typedef itk::ImageMaskSpatialObject< 3 > | MaskType |
Public Member Functions | |
| void | Execute (itk::Object *object, const itk::EventObject &event) |
| void | Execute (const itk::Object *, const itk::EventObject &) |
Static Public Member Functions | |
| static Pointer | New () |
Public Attributes | |
| mitk::RigidRegistrationObserver::Pointer | observer |
| bool | m_UseMask |
| std::vector< std::string > | m_Presets |
| MaskType::Pointer | m_BrainMask |
Protected Member Functions | |
| RegistrationInterfaceCommand () | |
Definition at line 21 of file mitkRegistrationInterfaceCommand.h.
| typedef itk::ImageMaskSpatialObject< 3 > mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::MaskType |
Definition at line 46 of file mitkRegistrationInterfaceCommand.h.
| typedef OptimizerType* mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::OptimizerPointer |
Definition at line 45 of file mitkRegistrationInterfaceCommand.h.
| typedef itk::SingleValuedNonLinearOptimizer mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::OptimizerType |
Definition at line 44 of file mitkRegistrationInterfaceCommand.h.
| typedef itk::SmartPointer<Self> mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::Pointer |
Definition at line 27 of file mitkRegistrationInterfaceCommand.h.
| typedef RegistrationType* mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::RegistrationPointer |
Definition at line 43 of file mitkRegistrationInterfaceCommand.h.
| typedef itk::MultiResolutionImageRegistrationMethod< itk::Image<float, 3> , itk::Image<float, 3> > mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::RegistrationType |
Definition at line 40 of file mitkRegistrationInterfaceCommand.h.
| typedef RegistrationInterfaceCommand mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::Self |
Definition at line 25 of file mitkRegistrationInterfaceCommand.h.
| typedef itk::Command mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::Superclass |
Definition at line 26 of file mitkRegistrationInterfaceCommand.h.
| mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::RegistrationInterfaceCommand | ( | ) | [inline, protected] |
Definition at line 30 of file mitkRegistrationInterfaceCommand.h.
References mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::m_UseMask.
{
m_UseMask = false;
}
| void mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::Execute | ( | itk::Object * | object, |
| const itk::EventObject & | event | ||
| ) | [inline] |
Definition at line 54 of file mitkRegistrationInterfaceCommand.h.
References mitk::TransformParameters::AFFINETRANSFORM, mitk::RigidRegistrationTestPreset::getOptimizerValues(), mitk::RigidRegistrationTestPreset::getTransformValues(), mitk::OptimizerParameters::GRADIENTDESCENTOPTIMIZER, mitk::RigidRegistrationTestPreset::LoadPreset(), mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::m_Presets, mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::New(), mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::observer, and mitk::OptimizerParameters::REGULARSTEPGRADIENTDESCENTOPTIMIZER.
{
if( !(itk::IterationEvent().CheckEvent( &event )) )
{
return;
}
RegistrationPointer registration = dynamic_cast<RegistrationPointer>( object );
/*OptimizerPointer optimizer = dynamic_cast< OptimizerPointer >(
registration->GetOptimizer() );*/
std::cout << "-------------------------------------" << std::endl;
std::cout << "MultiResolution Level : "
<< registration->GetCurrentLevel() << std::endl << std::endl;
if ( registration->GetCurrentLevel() == 0 )
{
// Nothing needs to be changed in the first step
}
else
{
// Load presets and make a new optimizer if that succeeds
mitk::RigidRegistrationTestPreset *preset = new mitk::RigidRegistrationTestPreset();
if( preset->LoadPreset() )
{
mitk::OptimizerParameters::Pointer optimizerParameters = mitk::OptimizerParameters::New();
itk::Array<double> optimizerValues = preset->getOptimizerValues(m_Presets[ registration->GetCurrentLevel() ]);
optimizerParameters->SetOptimizer(optimizerValues[0]);
optimizerParameters->SetMaximize(optimizerValues[1]); //should be when used with maximize mutual information for example
if(optimizerValues[0] == mitk::OptimizerParameters::GRADIENTDESCENTOPTIMIZER)
{
optimizerParameters->SetLearningRateGradientDescent(optimizerValues[2]);
optimizerParameters->SetNumberOfIterationsGradientDescent(optimizerValues[3]);
}
if(optimizerValues[0] == mitk::OptimizerParameters::REGULARSTEPGRADIENTDESCENTOPTIMIZER)
{
cout << "use regularstepgradientdescent" << endl;
optimizerParameters->SetGradientMagnitudeToleranceRegularStepGradientDescent(optimizerValues[2]);
optimizerParameters->SetMinimumStepLengthRegularStepGradientDescent(optimizerValues[3]);
optimizerParameters->SetMaximumStepLengthRegularStepGradientDescent(optimizerValues[4]);
optimizerParameters->SetRelaxationFactorRegularStepGradientDescent(optimizerValues[5]);
optimizerParameters->SetNumberOfIterationsRegularStepGradientDescent(optimizerValues[6]);
}
// Typedef for the OptimizerFactory and initialisation of the optimizer using m_OptimizerParameters
typename OptimizerFactory::Pointer optFac = OptimizerFactory::New();
optFac->SetOptimizerParameters(optimizerParameters);
optFac->SetNumberOfTransformParameters(registration->GetTransform()->GetNumberOfParameters());
typename OptimizerType::Pointer optimizer = optFac->GetOptimizer();
if(observer.IsNotNull())
{
optimizer->AddObserver(itk::AnyEvent(), observer);
}
itk::Array<double> transformValues = preset->getTransformValues(m_Presets[ registration->GetCurrentLevel() ]);
itk::Array<double> scales;
if(transformValues[0] == mitk::TransformParameters::AFFINETRANSFORM) scales.SetSize(12);
mitk::TransformParameters::Pointer transformParameters = mitk::TransformParameters::New();
transformParameters->SetTransform(transformValues[0]);
for(unsigned int i = 0; i < scales.size(); i++)
{
scales[i] = transformValues[i+2];
std::cout << "scale " << i << ": " << scales[i] << std::endl;
}
transformParameters->SetScales(scales);
//transformParameters->SetTransformInitializerOn(false);
// Use Scales
if(transformValues[1] == 1)
{
transformParameters->SetUseOptimizerScales(true);
}
if (transformParameters->GetUseOptimizerScales())
{
itk::Array<double> optimizerScales = transformParameters->GetScales();
typename OptimizerType::ScalesType scales( registration->GetTransform()->GetNumberOfParameters() );
for (unsigned int i = 0; i < scales.Size(); i++)
{
scales[i] = optimizerScales[i];
}
optimizer->SetScales( scales );
}
registration->SetOptimizer(optimizer);
}
}
registration->Print(std::cout,0);
std::cout << std::endl;
std::cout << "METRIC" << std::endl;
registration->GetMetric()->Print(std::cout,0);
std::cout << std::endl;
std::cout << "OPTIMIZER" << std::endl;
registration->GetOptimizer()->Print(std::cout,0);
std::cout << std::endl;
std::cout << "TRANSFORM" << std::endl;
registration->GetTransform()->Print(std::cout,0);
}
| void mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::Execute | ( | const itk::Object * | , |
| const itk::EventObject & | |||
| ) | [inline] |
Definition at line 175 of file mitkRegistrationInterfaceCommand.h.
{ return; }
| static Pointer mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::New | ( | ) | [static] |
| MaskType::Pointer mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::m_BrainMask |
Definition at line 52 of file mitkRegistrationInterfaceCommand.h.
| std::vector<std::string> mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::m_Presets |
Definition at line 51 of file mitkRegistrationInterfaceCommand.h.
Referenced by mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::Execute().
| bool mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::m_UseMask |
Definition at line 50 of file mitkRegistrationInterfaceCommand.h.
Referenced by mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::RegistrationInterfaceCommand().
| mitk::RigidRegistrationObserver::Pointer mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::observer |
Definition at line 49 of file mitkRegistrationInterfaceCommand.h.
Referenced by mitk::RegistrationInterfaceCommand< TRegistration, TPixel >::Execute().
1.7.2