Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "QmitkKullbackLeiblerCompareHistogramMetricView.h"
00019 #include <itkKullbackLeiblerCompareHistogramImageToImageMetric.h>
00020 #include "mitkImageAccessByItk.h"
00021
00022 #include "QValidator"
00023
00024 QmitkKullbackLeiblerCompareHistogramMetricView::QmitkKullbackLeiblerCompareHistogramMetricView(QWidget* parent, Qt::WindowFlags f ) : QmitkRigidRegistrationMetricsGUIBase (parent, f)
00025 {
00026 }
00027
00028 QmitkKullbackLeiblerCompareHistogramMetricView::~QmitkKullbackLeiblerCompareHistogramMetricView()
00029 {
00030 }
00031
00032 itk::Object::Pointer QmitkKullbackLeiblerCompareHistogramMetricView::GetMetric()
00033 {
00034 if (m_MovingImage.IsNotNull())
00035 {
00036 AccessByItk(m_MovingImage, GetMetric2);
00037 return m_MetricObject;
00038 }
00039 return NULL;
00040 }
00041
00042 template < class TPixelType, unsigned int VImageDimension >
00043 itk::Object::Pointer QmitkKullbackLeiblerCompareHistogramMetricView::GetMetric2(itk::Image<TPixelType, VImageDimension>* )
00044 {
00045 typedef typename itk::Image< TPixelType, VImageDimension > FixedImageType;
00046 typedef typename itk::Image< TPixelType, VImageDimension > MovingImageType;
00047 typename itk::KullbackLeiblerCompareHistogramImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::KullbackLeiblerCompareHistogramImageToImageMetric<FixedImageType, MovingImageType>::New();
00048 unsigned int nBins = m_Controls.m_NumberOfHistogramBinsKullbackLeiblerCompareHistogram->text().toInt();
00049 typename itk::KullbackLeiblerCompareHistogramImageToImageMetric<FixedImageType, MovingImageType>::HistogramType::SizeType histogramSize;
00050 histogramSize[0] = nBins;
00051 histogramSize[1] = nBins;
00052 MetricPointer->SetHistogramSize(histogramSize);
00053 MetricPointer->SetComputeGradient(m_Controls.m_ComputeGradient->isChecked());
00054 m_MetricObject = MetricPointer.GetPointer();
00055 return MetricPointer.GetPointer();
00056 }
00057
00058 itk::Array<double> QmitkKullbackLeiblerCompareHistogramMetricView::GetMetricParameters()
00059 {
00060 itk::Array<double> metricValues;
00061 metricValues.SetSize(2);
00062 metricValues.fill(0);
00063 metricValues[0] = m_Controls.m_ComputeGradient->isChecked();
00064 metricValues[1] = m_Controls.m_NumberOfHistogramBinsKullbackLeiblerCompareHistogram->text().toInt();
00065 return metricValues;
00066 }
00067
00068 void QmitkKullbackLeiblerCompareHistogramMetricView::SetMetricParameters(itk::Array<double> metricValues)
00069 {
00070 m_Controls.m_ComputeGradient->setChecked(metricValues[0]);
00071 m_Controls.m_NumberOfHistogramBinsKullbackLeiblerCompareHistogram->setText(QString::number(metricValues[1]));
00072 }
00073
00074 QString QmitkKullbackLeiblerCompareHistogramMetricView::GetName()
00075 {
00076 return "KullbackLeiblerCompareHistogram";
00077 }
00078
00079 void QmitkKullbackLeiblerCompareHistogramMetricView::SetupUI(QWidget* parent)
00080 {
00081 m_Controls.setupUi(parent);
00082 QValidator* validatorLineEditInput = new QIntValidator(0, 20000000, this);
00083 m_Controls.m_NumberOfHistogramBinsKullbackLeiblerCompareHistogram->setValidator(validatorLineEditInput);
00084 }