Widget for rigid registration. More...
#include <QmitkAmoebaOptimizerView.h>


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 |
Widget for rigid registration.
Displays options for rigid registration.
Definition at line 35 of file QmitkAmoebaOptimizerView.h.
| QmitkAmoebaOptimizerView::QmitkAmoebaOptimizerView | ( | QWidget * | parent = 0, |
| Qt::WindowFlags | f = 0 |
||
| ) |
Definition at line 22 of file QmitkAmoebaOptimizerView.cpp.
: QmitkRigidRegistrationOptimizerGUIBase (parent, f), m_NumberTransformParameters(15) { }
| QmitkAmoebaOptimizerView::~QmitkAmoebaOptimizerView | ( | ) |
Definition at line 27 of file QmitkAmoebaOptimizerView.cpp.
{
}
| 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);
}
Definition at line 62 of file QmitkAmoebaOptimizerView.h.
Referenced by GetOptimizer(), GetOptimizerParameters(), SetOptimizerParameters(), and SetupUI().
int QmitkAmoebaOptimizerView::m_NumberTransformParameters [protected] |
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().
1.7.2