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 "QmitkConjugateGradientOptimizerView.h" 00019 #include "mitkImageAccessByItk.h" 00020 #include <itkConjugateGradientOptimizer.h> 00021 00022 QmitkConjugateGradientOptimizerView::QmitkConjugateGradientOptimizerView(QWidget* parent, Qt::WindowFlags f ) : QmitkRigidRegistrationOptimizerGUIBase (parent, f), 00023 m_NumberTransformParameters(16) 00024 { 00025 00026 } 00027 00028 QmitkConjugateGradientOptimizerView::~QmitkConjugateGradientOptimizerView() 00029 { 00030 } 00031 00032 itk::Object::Pointer QmitkConjugateGradientOptimizerView::GetOptimizer() 00033 { 00034 itk::ConjugateGradientOptimizer::Pointer OptimizerPointer = itk::ConjugateGradientOptimizer::New(); 00035 OptimizerPointer->SetMaximize( m_Controls.m_Maximize->isChecked() ); 00036 /*typedef itk::ConjugateGradientOptimizer::InternalOptimizerType vnlOptimizerType; 00037 vnlOptimizerType * vnlOptimizer = OptimizerPointer->GetOptimizer(); 00038 vnlOptimizer->set_f_tolerance( 1e-3 ); 00039 vnlOptimizer->set_g_tolerance( 1e-4 ); 00040 vnlOptimizer->set_x_tolerance( 1e-8 ); 00041 vnlOptimizer->set_epsilon_function( 1e-10 ); 00042 vnlOptimizer->set_max_function_evals( m_Iterations ); 00043 vnlOptimizer->set_check_derivatives( 3 );*/ 00044 00045 return OptimizerPointer.GetPointer(); 00046 } 00047 00048 itk::Array<double> QmitkConjugateGradientOptimizerView::GetOptimizerParameters() 00049 { 00050 itk::Array<double> optimizerValues; 00051 optimizerValues.SetSize(1); 00052 optimizerValues.fill(0); 00053 optimizerValues[0] = m_Controls.m_Maximize->isChecked(); 00054 return optimizerValues; 00055 } 00056 00057 void QmitkConjugateGradientOptimizerView::SetOptimizerParameters(itk::Array<double> optimizerValues) 00058 { 00059 m_Controls.m_Maximize->setChecked(optimizerValues[0]); 00060 } 00061 00062 void QmitkConjugateGradientOptimizerView::SetNumberOfTransformParameters(int transformParameters) 00063 { 00064 m_NumberTransformParameters = transformParameters; 00065 } 00066 00067 QString QmitkConjugateGradientOptimizerView::GetName() 00068 { 00069 return "ConjugateGradient"; 00070 } 00071 00072 void QmitkConjugateGradientOptimizerView::SetupUI(QWidget* parent) 00073 { 00074 m_Controls.setupUi(parent); 00075 }