Public Member Functions | Protected Attributes

QmitkAmoebaOptimizerView Class Reference

Widget for rigid registration. More...

#include <QmitkAmoebaOptimizerView.h>

Inheritance diagram for QmitkAmoebaOptimizerView:
Inheritance graph
[legend]
Collaboration diagram for QmitkAmoebaOptimizerView:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 QmitkAmoebaOptimizerView (QWidget *parent=0, Qt::WindowFlags f=0)
 ~QmitkAmoebaOptimizerView ()
virtual itk::Object::Pointer GetOptimizer ()
virtual itk::Array< double > GetOptimizerParameters ()
virtual void SetOptimizerParameters (itk::Array< double > metricValues)
virtual void SetNumberOfTransformParameters (int transformParameters)
virtual QString GetName ()
virtual void SetupUI (QWidget *parent)

Protected Attributes

Ui::QmitkAmoebaOptimizerControls m_Controls
int m_NumberTransformParameters
std::list< QLineEdit * > simplexDeltaLineEdits
std::list< QLabel * > simplexDeltaLabels

Detailed Description

Widget for rigid registration.

Displays options for rigid registration.

Definition at line 35 of file QmitkAmoebaOptimizerView.h.


Constructor & Destructor Documentation

QmitkAmoebaOptimizerView::QmitkAmoebaOptimizerView ( QWidget *  parent = 0,
Qt::WindowFlags  f = 0 
)
QmitkAmoebaOptimizerView::~QmitkAmoebaOptimizerView (  )

Definition at line 27 of file QmitkAmoebaOptimizerView.cpp.

{
}

Member Function Documentation

QString QmitkAmoebaOptimizerView::GetName (  ) [virtual]

Implements QmitkRigidRegistrationOptimizerGUIBase.

Definition at line 106 of file QmitkAmoebaOptimizerView.cpp.

{
  return "Amoeba";
}
itk::Object::Pointer QmitkAmoebaOptimizerView::GetOptimizer (  ) [virtual]

Implements QmitkRigidRegistrationOptimizerGUIBase.

Definition at line 31 of file QmitkAmoebaOptimizerView.cpp.

References GetOptimizerParameters(), m_Controls, Ui_QmitkAmoebaOptimizerControls::m_FunctionConvergenceToleranceAmoeba, Ui_QmitkAmoebaOptimizerControls::m_IterationsAmoeba, Ui_QmitkAmoebaOptimizerControls::m_Maximize, m_NumberTransformParameters, and Ui_QmitkAmoebaOptimizerControls::m_ParametersConvergenceToleranceAmoeba.

{
  itk::AmoebaOptimizer::Pointer OptimizerPointer = itk::AmoebaOptimizer::New();
  OptimizerPointer->SetMaximize( m_Controls.m_Maximize->isChecked() );
  OptimizerPointer->SetParametersConvergenceTolerance(m_Controls.m_ParametersConvergenceToleranceAmoeba->text().toFloat());
  OptimizerPointer->SetFunctionConvergenceTolerance(m_Controls.m_FunctionConvergenceToleranceAmoeba->text().toFloat());
  typedef itk::SingleValuedNonLinearOptimizer OptimizerType;
  OptimizerType::ParametersType simplexDelta( m_NumberTransformParameters );
  itk::Array<double> simplexDeltaAmoeba = this->GetOptimizerParameters();
  for (int i = 0; i < m_NumberTransformParameters; i++)
  {
    simplexDelta[i] = simplexDeltaAmoeba[i+1];
  }
  OptimizerPointer->AutomaticInitialSimplexOff();
  OptimizerPointer->SetInitialSimplexDelta( simplexDelta );
  OptimizerPointer->SetMaximumNumberOfIterations( m_Controls.m_IterationsAmoeba->text().toInt() );
  return OptimizerPointer.GetPointer();
}
itk::Array< double > QmitkAmoebaOptimizerView::GetOptimizerParameters (  ) [virtual]

Implements QmitkRigidRegistrationOptimizerGUIBase.

Definition at line 50 of file QmitkAmoebaOptimizerView.cpp.

References m_Controls, Ui_QmitkAmoebaOptimizerControls::m_FunctionConvergenceToleranceAmoeba, Ui_QmitkAmoebaOptimizerControls::m_IterationsAmoeba, Ui_QmitkAmoebaOptimizerControls::m_Maximize, Ui_QmitkAmoebaOptimizerControls::m_ParametersConvergenceToleranceAmoeba, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba1, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba10, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba11, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba12, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba13, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba14, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba15, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba2, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba3, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba4, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba5, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba6, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba7, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba8, and Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba9.

Referenced by GetOptimizer().

{
  itk::Array<double> optimizerValues;
  optimizerValues.SetSize(19);
  optimizerValues.fill(0);
  optimizerValues[0] = m_Controls.m_Maximize->isChecked();
  optimizerValues[1] = m_Controls.m_SimplexDeltaAmoeba1->text().toDouble();
  optimizerValues[2] = m_Controls.m_SimplexDeltaAmoeba2->text().toDouble();
  optimizerValues[3] = m_Controls.m_SimplexDeltaAmoeba3->text().toDouble();
  optimizerValues[4] = m_Controls.m_SimplexDeltaAmoeba4->text().toDouble();
  optimizerValues[5] = m_Controls.m_SimplexDeltaAmoeba5->text().toDouble();
  optimizerValues[6] = m_Controls.m_SimplexDeltaAmoeba6->text().toDouble();
  optimizerValues[7] = m_Controls.m_SimplexDeltaAmoeba7->text().toDouble();
  optimizerValues[8] = m_Controls.m_SimplexDeltaAmoeba8->text().toDouble();
  optimizerValues[9] = m_Controls.m_SimplexDeltaAmoeba9->text().toDouble();
  optimizerValues[10] = m_Controls.m_SimplexDeltaAmoeba10->text().toDouble();
  optimizerValues[11] = m_Controls.m_SimplexDeltaAmoeba11->text().toDouble();
  optimizerValues[12] = m_Controls.m_SimplexDeltaAmoeba12->text().toDouble();
  optimizerValues[13] = m_Controls.m_SimplexDeltaAmoeba13->text().toDouble();
  optimizerValues[14] = m_Controls.m_SimplexDeltaAmoeba14->text().toDouble();
  optimizerValues[15] = m_Controls.m_SimplexDeltaAmoeba15->text().toDouble();
  optimizerValues[16] = m_Controls.m_ParametersConvergenceToleranceAmoeba->text().toFloat();
  optimizerValues[17] = m_Controls.m_FunctionConvergenceToleranceAmoeba->text().toFloat();
  optimizerValues[18] = m_Controls.m_IterationsAmoeba->text().toInt();
  return optimizerValues;
}
void QmitkAmoebaOptimizerView::SetNumberOfTransformParameters ( int  transformParameters ) [virtual]

Implements QmitkRigidRegistrationOptimizerGUIBase.

Definition at line 100 of file QmitkAmoebaOptimizerView.cpp.

References m_NumberTransformParameters.

{
  m_NumberTransformParameters = transformParameters;
  this->ShowSimplexDelta();
}
void QmitkAmoebaOptimizerView::SetOptimizerParameters ( itk::Array< double >  metricValues ) [virtual]

Implements QmitkRigidRegistrationOptimizerGUIBase.

Definition at line 77 of file QmitkAmoebaOptimizerView.cpp.

References m_Controls, Ui_QmitkAmoebaOptimizerControls::m_FunctionConvergenceToleranceAmoeba, Ui_QmitkAmoebaOptimizerControls::m_IterationsAmoeba, Ui_QmitkAmoebaOptimizerControls::m_Maximize, Ui_QmitkAmoebaOptimizerControls::m_ParametersConvergenceToleranceAmoeba, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba1, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba10, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba11, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba12, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba13, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba14, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba15, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba2, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba3, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba4, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba5, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba6, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba7, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba8, and Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba9.

{
  m_Controls.m_Maximize->setChecked(optimizerValues[0]);
  m_Controls.m_SimplexDeltaAmoeba1->setText(QString::number(optimizerValues[1]));
  m_Controls.m_SimplexDeltaAmoeba2->setText(QString::number(optimizerValues[2]));
  m_Controls.m_SimplexDeltaAmoeba3->setText(QString::number(optimizerValues[3]));
  m_Controls.m_SimplexDeltaAmoeba4->setText(QString::number(optimizerValues[4]));
  m_Controls.m_SimplexDeltaAmoeba5->setText(QString::number(optimizerValues[5]));
  m_Controls.m_SimplexDeltaAmoeba6->setText(QString::number(optimizerValues[6]));
  m_Controls.m_SimplexDeltaAmoeba7->setText(QString::number(optimizerValues[7]));
  m_Controls.m_SimplexDeltaAmoeba8->setText(QString::number(optimizerValues[8]));
  m_Controls.m_SimplexDeltaAmoeba9->setText(QString::number(optimizerValues[9]));
  m_Controls.m_SimplexDeltaAmoeba10->setText(QString::number(optimizerValues[10]));
  m_Controls.m_SimplexDeltaAmoeba11->setText(QString::number(optimizerValues[11]));
  m_Controls.m_SimplexDeltaAmoeba12->setText(QString::number(optimizerValues[12]));
  m_Controls.m_SimplexDeltaAmoeba13->setText(QString::number(optimizerValues[13]));
  m_Controls.m_SimplexDeltaAmoeba14->setText(QString::number(optimizerValues[14]));
  m_Controls.m_SimplexDeltaAmoeba15->setText(QString::number(optimizerValues[15]));
  m_Controls.m_ParametersConvergenceToleranceAmoeba->setText(QString::number(optimizerValues[16]));
  m_Controls.m_FunctionConvergenceToleranceAmoeba->setText(QString::number(optimizerValues[17]));
  m_Controls.m_IterationsAmoeba->setText(QString::number(optimizerValues[18]));
}
void QmitkAmoebaOptimizerView::SetupUI ( QWidget *  parent ) [virtual]

Implements QmitkRigidRegistrationOptimizerGUIBase.

Definition at line 111 of file QmitkAmoebaOptimizerView.cpp.

References m_Controls, Ui_QmitkAmoebaOptimizerControls::m_FunctionConvergenceToleranceAmoeba, Ui_QmitkAmoebaOptimizerControls::m_IterationsAmoeba, Ui_QmitkAmoebaOptimizerControls::m_ParametersConvergenceToleranceAmoeba, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba1, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba10, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba11, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba12, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba13, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba14, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba15, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba2, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba3, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba4, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba5, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba6, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba7, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba8, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoeba9, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel1, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel10, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel11, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel12, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel13, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel14, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel15, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel2, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel3, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel4, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel5, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel6, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel7, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel8, Ui_QmitkAmoebaOptimizerControls::m_SimplexDeltaAmoebaLabel9, Ui_QmitkAmoebaOptimizerControls::setupUi(), simplexDeltaLabels, and simplexDeltaLineEdits.

{
  m_Controls.setupUi(parent);
  QValidator* validatorLineEditInput = new QIntValidator(0, 20000000, this);
  m_Controls.m_IterationsAmoeba->setValidator(validatorLineEditInput);
  QValidator* validatorLineEditInputFloat = new QDoubleValidator(0, 20000000, 8, this);
  m_Controls.m_SimplexDeltaAmoeba1->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba2->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba3->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba4->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba5->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba6->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba7->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba8->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba9->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba10->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba11->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba12->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba13->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba14->setValidator(validatorLineEditInputFloat);
  m_Controls.m_SimplexDeltaAmoeba15->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ParametersConvergenceToleranceAmoeba->setValidator(validatorLineEditInputFloat);
  m_Controls.m_FunctionConvergenceToleranceAmoeba->setValidator(validatorLineEditInputFloat);
  simplexDeltaLineEdits.clear();
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba1);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba2);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba3);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba4);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba5);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba6);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba7);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba8);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba9);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba10);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba11);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba12);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba13);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba14);
  simplexDeltaLineEdits.push_back(m_Controls.m_SimplexDeltaAmoeba15);
  simplexDeltaLabels.clear();
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel1);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel2);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel3);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel4);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel5);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel6);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel7);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel8);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel9);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel10);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel11);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel12);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel13);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel14);
  simplexDeltaLabels.push_back(m_Controls.m_SimplexDeltaAmoebaLabel15);
}

Member Data Documentation

Definition at line 64 of file QmitkAmoebaOptimizerView.h.

Referenced by GetOptimizer(), and SetNumberOfTransformParameters().

std::list<QLabel*> QmitkAmoebaOptimizerView::simplexDeltaLabels [protected]

Definition at line 67 of file QmitkAmoebaOptimizerView.h.

Referenced by SetupUI().

std::list<QLineEdit*> QmitkAmoebaOptimizerView::simplexDeltaLineEdits [protected]

Definition at line 66 of file QmitkAmoebaOptimizerView.h.

Referenced by SetupUI().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines