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().