This class creates a metric for a rigid registration process. More...
#include <mitkMetricFactory.h>
Public Types | |
typedef MetricFactory | Self |
typedef itk::Object | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer < const Self > | ConstPointer |
typedef itk::Image< TPixelType, VImageDimension > | FixedImageType |
typedef itk::Image< unsigned char, VImageDimension > | FixedMaskImageType |
typedef itk::ImageMaskSpatialObject < VImageDimension > | FixedImageMaskType |
typedef itk::Image< TPixelType, VImageDimension > | MovingImageType |
typedef itk::Image< unsigned char, VImageDimension > | MovingMaskImageType |
typedef itk::ImageMaskSpatialObject < VImageDimension > | MovingImageMaskType |
typedef itk::ImageToImageMetric < FixedImageType, MovingImageType > | MetricType |
typedef MetricType::Pointer | MetricPointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
MetricPointer | GetMetric () |
Returns the metric which then can be used in combination with a transform, an optimizer and an interpolator within a registration pipeline. | |
void | SetMetricParameters (MetricParameters::Pointer metricParameters) |
Sets the instance to the metric parameters class which holds all parameters for the new metric. | |
MetricParameters::Pointer | GetMetricParameters () |
Returns the instance to the metric parameters class which holds all parameters for the new metric. | |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
MetricFactory () | |
~MetricFactory () | |
Protected Attributes | |
MetricParameters::Pointer | m_MetricParameters |
This class creates a metric for a rigid registration process.
This class will e.g. be instantiated by mitkImageRegistrationMethod and a metric corresponding to the integer value stored in mitkMetricParameters will be created. Therefore SetMetricParameters() has to be called with an instance of mitkMetricParameters, which holds all parameter informations for the new metric.
GetMetric() returns the metric which then can be used in combination with a transform, an optimizer and an interpolator within a registration pipeline.
Definition at line 45 of file mitkMetricFactory.h.
typedef itk::SmartPointer<const Self> mitk::MetricFactory< TPixelType, VImageDimension >::ConstPointer |
Definition at line 26 of file mitkMetricFactory.h.
typedef itk::ImageMaskSpatialObject< VImageDimension > mitk::MetricFactory< TPixelType, VImageDimension >::FixedImageMaskType |
Definition at line 33 of file mitkMetricFactory.h.
typedef itk::Image< TPixelType, VImageDimension > mitk::MetricFactory< TPixelType, VImageDimension >::FixedImageType |
Definition at line 29 of file mitkMetricFactory.h.
typedef itk::Image< unsigned char, VImageDimension > mitk::MetricFactory< TPixelType, VImageDimension >::FixedMaskImageType |
Definition at line 32 of file mitkMetricFactory.h.
typedef MetricType::Pointer mitk::MetricFactory< TPixelType, VImageDimension >::MetricPointer |
Definition at line 39 of file mitkMetricFactory.h.
typedef itk::ImageToImageMetric< FixedImageType, MovingImageType > mitk::MetricFactory< TPixelType, VImageDimension >::MetricType |
Definition at line 38 of file mitkMetricFactory.h.
typedef itk::ImageMaskSpatialObject< VImageDimension > mitk::MetricFactory< TPixelType, VImageDimension >::MovingImageMaskType |
Definition at line 36 of file mitkMetricFactory.h.
typedef itk::Image< TPixelType, VImageDimension > mitk::MetricFactory< TPixelType, VImageDimension >::MovingImageType |
Definition at line 34 of file mitkMetricFactory.h.
typedef itk::Image< unsigned char, VImageDimension > mitk::MetricFactory< TPixelType, VImageDimension >::MovingMaskImageType |
Definition at line 35 of file mitkMetricFactory.h.
typedef itk::SmartPointer<Self> mitk::MetricFactory< TPixelType, VImageDimension >::Pointer |
Definition at line 26 of file mitkMetricFactory.h.
typedef MetricFactory mitk::MetricFactory< TPixelType, VImageDimension >::Self |
Definition at line 26 of file mitkMetricFactory.h.
typedef itk::Object mitk::MetricFactory< TPixelType, VImageDimension >::Superclass |
Definition at line 26 of file mitkMetricFactory.h.
mitk::MetricFactory< TPixelType, VImageDimension >::MetricFactory | ( | ) | [protected] |
Definition at line 38 of file mitkMetricFactory.txx.
: m_MetricParameters(NULL) { }
mitk::MetricFactory< TPixelType, VImageDimension >::~MetricFactory | ( | ) | [inline, protected] |
Definition at line 65 of file mitkMetricFactory.h.
virtual const char* mitk::MetricFactory< TPixelType, VImageDimension >::GetClassName | ( | ) | const [virtual] |
MetricFactory< TPixelType, VImageDimension >::MetricPointer mitk::MetricFactory< TPixelType, VImageDimension >::GetMetric | ( | ) |
Returns the metric which then can be used in combination with a transform, an optimizer and an interpolator within a registration pipeline.
Definition at line 45 of file mitkMetricFactory.txx.
References mitk::MetricParameters::CORRELATIONCOEFFICIENTHISTOGRAMIMAGETOIMAGEMETRIC, mitk::MetricParameters::GRADIENTDIFFERENCEIMAGETOIMAGEMETRIC, mitk::MetricParameters::KAPPASTATISTICIMAGETOIMAGEMETRIC, mitk::MetricParameters::KULLBACKLEIBLERCOMPAREHISTOGRAMIMAGETOIMAGEMETRIC, mitk::MetricParameters::MATCHCARDINALITYIMAGETOIMAGEMETRIC, mitk::MetricParameters::MATTESMUTUALINFORMATIONIMAGETOIMAGEMETRIC, mitk::MetricParameters::MEANRECIPROCALSQUAREDIFFERENCEIMAGETOIMAGEMETRIC, mitk::MetricParameters::MEANSQUARESHISTOGRAMIMAGETOIMAGEMETRIC, mitk::MetricParameters::MEANSQUARESIMAGETOIMAGEMETRIC, mitk::MetricParameters::MUTUALINFORMATIONHISTOGRAMIMAGETOIMAGEMETRIC, mitk::MetricParameters::MUTUALINFORMATIONIMAGETOIMAGEMETRIC, mitk::MetricParameters::NORMALIZEDCORRELATIONIMAGETOIMAGEMETRIC, and mitk::MetricParameters::NORMALIZEDMUTUALINFORMATIONHISTOGRAMIMAGETOIMAGEMETRIC.
{ int metric = m_MetricParameters->GetMetric(); if (metric == MetricParameters::MEANSQUARESIMAGETOIMAGEMETRIC) { typename itk::MeanSquaresImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::MeanSquaresImageToImageMetric<FixedImageType, MovingImageType>::New(); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::NORMALIZEDCORRELATIONIMAGETOIMAGEMETRIC) { typename itk::NormalizedCorrelationImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::NormalizedCorrelationImageToImageMetric<FixedImageType, MovingImageType>::New(); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::GRADIENTDIFFERENCEIMAGETOIMAGEMETRIC) { typename itk::GradientDifferenceImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::GradientDifferenceImageToImageMetric<FixedImageType, MovingImageType>::New(); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::KULLBACKLEIBLERCOMPAREHISTOGRAMIMAGETOIMAGEMETRIC) { typename itk::KullbackLeiblerCompareHistogramImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::KullbackLeiblerCompareHistogramImageToImageMetric<FixedImageType, MovingImageType>::New(); unsigned int nBins = m_MetricParameters->GetNumberOfHistogramBinsKullbackLeiblerCompareHistogram(); typename itk::KullbackLeiblerCompareHistogramImageToImageMetric<FixedImageType, MovingImageType>::HistogramType::SizeType histogramSize; histogramSize[0] = nBins; histogramSize[1] = nBins; MetricPointer->SetHistogramSize(histogramSize); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::CORRELATIONCOEFFICIENTHISTOGRAMIMAGETOIMAGEMETRIC) { typename itk::CorrelationCoefficientHistogramImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::CorrelationCoefficientHistogramImageToImageMetric<FixedImageType, MovingImageType>::New(); unsigned int nBins = m_MetricParameters->GetNumberOfHistogramBinsCorrelationCoefficientHistogram(); typename itk::CorrelationCoefficientHistogramImageToImageMetric<FixedImageType, MovingImageType>::HistogramType::SizeType histogramSize; histogramSize[0] = nBins; histogramSize[1] = nBins; MetricPointer->SetHistogramSize(histogramSize); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::MEANSQUARESHISTOGRAMIMAGETOIMAGEMETRIC) { typename itk::MeanSquaresHistogramImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::MeanSquaresHistogramImageToImageMetric<FixedImageType, MovingImageType>::New(); unsigned int nBins = m_MetricParameters->GetNumberOfHistogramBinsMeanSquaresHistogram(); typename itk::MeanSquaresHistogramImageToImageMetric<FixedImageType, MovingImageType>::HistogramType::SizeType histogramSize; histogramSize[0] = nBins; histogramSize[1] = nBins; MetricPointer->SetHistogramSize(histogramSize); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::MUTUALINFORMATIONHISTOGRAMIMAGETOIMAGEMETRIC) { typename itk::MutualInformationHistogramImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::MutualInformationHistogramImageToImageMetric<FixedImageType, MovingImageType>::New(); unsigned int nBins = m_MetricParameters->GetNumberOfHistogramBinsMutualInformationHistogram(); typename itk::MutualInformationHistogramImageToImageMetric<FixedImageType, MovingImageType>::HistogramType::SizeType histogramSize; histogramSize[0] = nBins; histogramSize[1] = nBins; MetricPointer->SetHistogramSize(histogramSize); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::NORMALIZEDMUTUALINFORMATIONHISTOGRAMIMAGETOIMAGEMETRIC) { typename itk::NormalizedMutualInformationHistogramImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::NormalizedMutualInformationHistogramImageToImageMetric<FixedImageType, MovingImageType>::New(); unsigned int nBins = m_MetricParameters->GetNumberOfHistogramBinsNormalizedMutualInformationHistogram(); typename itk::NormalizedMutualInformationHistogramImageToImageMetric<FixedImageType, MovingImageType>::HistogramType::SizeType histogramSize; histogramSize[0] = nBins; histogramSize[1] = nBins; MetricPointer->SetHistogramSize( histogramSize ); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::MATTESMUTUALINFORMATIONIMAGETOIMAGEMETRIC) { typename itk::MattesMutualInformationImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::MattesMutualInformationImageToImageMetric<FixedImageType, MovingImageType>::New(); bool useSampling = m_MetricParameters->GetUseSamplesMattesMutualInformation(); if( useSampling ) { // set the number of samples to use MetricPointer->SetNumberOfSpatialSamples( m_MetricParameters->GetSpatialSamplesMattesMutualInformation() ); } else { MetricPointer->UseAllPixelsOn(); } MetricPointer->SetNumberOfHistogramBins(m_MetricParameters->GetNumberOfHistogramBinsMattesMutualInformation()); MetricPointer->ReinitializeSeed( 76926294 ); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::MEANRECIPROCALSQUAREDIFFERENCEIMAGETOIMAGEMETRIC) { typename itk::MeanReciprocalSquareDifferenceImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::MeanReciprocalSquareDifferenceImageToImageMetric<FixedImageType, MovingImageType>::New(); //------------------------------------------------------------ // The lambda value is the intensity difference that should // make the metric drop by 50% //------------------------------------------------------------ MetricPointer->SetLambda( m_MetricParameters->GetLambdaMeanReciprocalSquareDifference() ); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::MUTUALINFORMATIONIMAGETOIMAGEMETRIC) { typename itk::MutualInformationImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::MutualInformationImageToImageMetric<FixedImageType, MovingImageType>::New(); MetricPointer->SetNumberOfSpatialSamples(m_MetricParameters->GetSpatialSamplesMutualInformation()); MetricPointer->SetFixedImageStandardDeviation(m_MetricParameters->GetFixedImageStandardDeviationMutualInformation()); MetricPointer->SetMovingImageStandardDeviation(m_MetricParameters->GetMovingImageStandardDeviationMutualInformation()); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::MATCHCARDINALITYIMAGETOIMAGEMETRIC) { typename itk::MatchCardinalityImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::MatchCardinalityImageToImageMetric<FixedImageType, MovingImageType>::New(); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } else if (metric == MetricParameters::KAPPASTATISTICIMAGETOIMAGEMETRIC) { typename itk::KappaStatisticImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::KappaStatisticImageToImageMetric<FixedImageType, MovingImageType>::New(); MetricPointer->SetComputeGradient(m_MetricParameters->GetComputeGradient()); return MetricPointer.GetPointer(); } return NULL; }
MetricParameters::Pointer mitk::MetricFactory< TPixelType, VImageDimension >::GetMetricParameters | ( | ) | [inline] |
Returns the instance to the metric parameters class which holds all parameters for the new metric.
Definition at line 58 of file mitkMetricFactory.h.
static Pointer mitk::MetricFactory< TPixelType, VImageDimension >::New | ( | ) | [static] |
Method for creation through the object factory.
void mitk::MetricFactory< TPixelType, VImageDimension >::SetMetricParameters | ( | MetricParameters::Pointer | metricParameters ) | [inline] |
Sets the instance to the metric parameters class which holds all parameters for the new metric.
Definition at line 50 of file mitkMetricFactory.h.
MetricParameters::Pointer mitk::MetricFactory< TPixelType, VImageDimension >::m_MetricParameters [protected] |
Definition at line 65 of file mitkMetricFactory.h.