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 "QmitkQuaternionRigidTransformGradientDescentOptimizerView.h" 00019 #include "mitkImageAccessByItk.h" 00020 #include <itkQuaternionRigidTransformGradientDescentOptimizer.h> 00021 00022 QmitkQuaternionRigidTransformGradientDescentOptimizerView::QmitkQuaternionRigidTransformGradientDescentOptimizerView(QWidget* parent, Qt::WindowFlags f ) : QmitkRigidRegistrationOptimizerGUIBase (parent, f), 00023 m_NumberTransformParameters(16) 00024 { 00025 00026 } 00027 00028 QmitkQuaternionRigidTransformGradientDescentOptimizerView::~QmitkQuaternionRigidTransformGradientDescentOptimizerView() 00029 { 00030 } 00031 00032 itk::Object::Pointer QmitkQuaternionRigidTransformGradientDescentOptimizerView::GetOptimizer() 00033 { 00034 itk::QuaternionRigidTransformGradientDescentOptimizer::Pointer OptimizerPointer = itk::QuaternionRigidTransformGradientDescentOptimizer::New(); 00035 OptimizerPointer->SetMaximize( m_Controls.m_Maximize->isChecked()); 00036 OptimizerPointer->SetLearningRate(m_Controls.m_LearningRateQuaternionRigidTransformGradientDescent->text().toFloat()); 00037 OptimizerPointer->SetNumberOfIterations( m_Controls.m_IterationsQuaternionRigidTransformGradientDescent->text().toInt() ); 00038 return OptimizerPointer.GetPointer(); 00039 } 00040 00041 itk::Array<double> QmitkQuaternionRigidTransformGradientDescentOptimizerView::GetOptimizerParameters() 00042 { 00043 itk::Array<double> optimizerValues; 00044 optimizerValues.SetSize(3); 00045 optimizerValues.fill(0); 00046 optimizerValues[0] = m_Controls.m_Maximize->isChecked(); 00047 optimizerValues[1] = m_Controls.m_LearningRateQuaternionRigidTransformGradientDescent->text().toFloat(); 00048 optimizerValues[2] = m_Controls.m_IterationsQuaternionRigidTransformGradientDescent->text().toInt(); 00049 return optimizerValues; 00050 } 00051 00052 void QmitkQuaternionRigidTransformGradientDescentOptimizerView::SetOptimizerParameters(itk::Array<double> optimizerValues) 00053 { 00054 m_Controls.m_Maximize->setChecked(optimizerValues[0]); 00055 m_Controls.m_LearningRateQuaternionRigidTransformGradientDescent->setText(QString::number(optimizerValues[1])); 00056 m_Controls.m_IterationsQuaternionRigidTransformGradientDescent->setText(QString::number(optimizerValues[2])); 00057 } 00058 00059 void QmitkQuaternionRigidTransformGradientDescentOptimizerView::SetNumberOfTransformParameters(int transformParameters) 00060 { 00061 m_NumberTransformParameters = transformParameters; 00062 } 00063 00064 QString QmitkQuaternionRigidTransformGradientDescentOptimizerView::GetName() 00065 { 00066 return "QuaternionRigidTransformGradientDescent"; 00067 } 00068 00069 void QmitkQuaternionRigidTransformGradientDescentOptimizerView::SetupUI(QWidget* parent) 00070 { 00071 m_Controls.setupUi(parent); 00072 QValidator* validatorLineEditInput = new QIntValidator(0, 20000000, this); 00073 m_Controls.m_IterationsQuaternionRigidTransformGradientDescent->setValidator(validatorLineEditInput); 00074 QValidator* validatorLineEditInputFloat = new QDoubleValidator(0, 20000000, 8, this); 00075 m_Controls.m_LearningRateQuaternionRigidTransformGradientDescent->setValidator(validatorLineEditInputFloat); 00076 }