00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 00006 Version: $Revision: -1 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #include "QmitkMatchCardinalityMetricView.h" 00019 #include <itkMatchCardinalityImageToImageMetric.h> 00020 #include "mitkImageAccessByItk.h" 00021 00022 QmitkMatchCardinalityMetricView::QmitkMatchCardinalityMetricView(QWidget* parent, Qt::WindowFlags f ) : QmitkRigidRegistrationMetricsGUIBase (parent, f) 00023 { 00024 00025 } 00026 00027 QmitkMatchCardinalityMetricView::~QmitkMatchCardinalityMetricView() 00028 { 00029 } 00030 00031 itk::Object::Pointer QmitkMatchCardinalityMetricView::GetMetric() 00032 { 00033 if (m_MovingImage.IsNotNull()) 00034 { 00035 AccessByItk(m_MovingImage, GetMetric2); 00036 return m_MetricObject; 00037 } 00038 return NULL; 00039 } 00040 00041 template < class TPixelType, unsigned int VImageDimension > 00042 itk::Object::Pointer QmitkMatchCardinalityMetricView::GetMetric2(itk::Image<TPixelType, VImageDimension>* /*itkImage1*/) 00043 { 00044 typedef typename itk::Image< TPixelType, VImageDimension > FixedImageType; 00045 typedef typename itk::Image< TPixelType, VImageDimension > MovingImageType; 00046 typename itk::MatchCardinalityImageToImageMetric<FixedImageType, MovingImageType>::Pointer MetricPointer = itk::MatchCardinalityImageToImageMetric<FixedImageType, MovingImageType>::New(); 00047 MetricPointer->SetComputeGradient(m_Controls.m_ComputeGradient->isChecked()); 00048 m_MetricObject = MetricPointer.GetPointer(); 00049 return MetricPointer.GetPointer(); 00050 } 00051 00052 itk::Array<double> QmitkMatchCardinalityMetricView::GetMetricParameters() 00053 { 00054 itk::Array<double> metricValues; 00055 metricValues.SetSize(1); 00056 metricValues.fill(0); 00057 metricValues[0] = m_Controls.m_ComputeGradient->isChecked(); 00058 return metricValues; 00059 } 00060 00061 void QmitkMatchCardinalityMetricView::SetMetricParameters(itk::Array<double> metricValues) 00062 { 00063 m_Controls.m_ComputeGradient->setChecked(metricValues[0]); 00064 } 00065 00066 QString QmitkMatchCardinalityMetricView::GetName() 00067 { 00068 return "MatchCardinality"; 00069 } 00070 00071 void QmitkMatchCardinalityMetricView::SetupUI(QWidget* parent) 00072 { 00073 m_Controls.setupUi(parent); 00074 }