Widget for rigid registration. More...
#include <QmitkRigid3DTransformView.h>
Public Member Functions | |
QmitkRigid3DTransformView (QWidget *parent=0, Qt::WindowFlags f=0) | |
~QmitkRigid3DTransformView () | |
virtual itk::Object::Pointer | GetTransform () |
virtual itk::Array< double > | GetTransformParameters () |
virtual void | SetTransformParameters (itk::Array< double > transformValues) |
virtual QString | GetName () |
virtual void | SetupUI (QWidget *parent) |
virtual itk::Array< double > | GetScales () |
virtual vtkTransform * | Transform (vtkMatrix4x4 *vtkmatrix, vtkTransform *vtktransform, itk::Array< double > transformParams) |
virtual int | GetNumberOfTransformParameters () |
Protected Attributes | |
Ui::QmitkRigid3DTransformControls | m_Controls |
itk::Object::Pointer | m_TransformObject |
double | m_CenterX |
double | m_CenterY |
double | m_CenterZ |
Widget for rigid registration.
Displays options for rigid registration.
Definition at line 31 of file QmitkRigid3DTransformView.h.
QmitkRigid3DTransformView::QmitkRigid3DTransformView | ( | QWidget * | parent = 0 , |
Qt::WindowFlags | f = 0 |
||
) |
Definition at line 24 of file QmitkRigid3DTransformView.cpp.
: QmitkRigidRegistrationTransformsGUIBase(parent, f), m_CenterX(0), m_CenterY(0), m_CenterZ(0) { }
QmitkRigid3DTransformView::~QmitkRigid3DTransformView | ( | ) |
Definition at line 29 of file QmitkRigid3DTransformView.cpp.
{ }
QString QmitkRigid3DTransformView::GetName | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 104 of file QmitkRigid3DTransformView.cpp.
{ return "Rigid3D"; }
int QmitkRigid3DTransformView::GetNumberOfTransformParameters | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 178 of file QmitkRigid3DTransformView.cpp.
References QmitkRigidRegistrationTransformsGUIBase::m_FixedImage.
{ if (m_FixedImage.IsNotNull()) { if (m_FixedImage->GetDimension() == 2) return 6; else return 12; } else return 0; }
itk::Array< double > QmitkRigid3DTransformView::GetScales | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 127 of file QmitkRigid3DTransformView.cpp.
References m_Controls, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale1, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale2, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale3, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale4, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale5, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale6, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale7, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale8, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale9, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationX, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationY, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationZ, and Ui_QmitkRigid3DTransformControls::m_UseOptimizerScalesRigid3D.
{ itk::Array<double> scales; scales.SetSize(12); scales.Fill(1.0); if (m_Controls.m_UseOptimizerScalesRigid3D->isChecked()) { scales[0] = m_Controls.m_ScalesRigid3DTransformScale1->text().toDouble(); scales[1] = m_Controls.m_ScalesRigid3DTransformScale2->text().toDouble(); scales[2] = m_Controls.m_ScalesRigid3DTransformScale3->text().toDouble(); scales[3] = m_Controls.m_ScalesRigid3DTransformScale4->text().toDouble(); scales[4] = m_Controls.m_ScalesRigid3DTransformScale5->text().toDouble(); scales[5] = m_Controls.m_ScalesRigid3DTransformScale6->text().toDouble(); scales[6] = m_Controls.m_ScalesRigid3DTransformScale7->text().toDouble(); scales[7] = m_Controls.m_ScalesRigid3DTransformScale8->text().toDouble(); scales[8] = m_Controls.m_ScalesRigid3DTransformScale9->text().toDouble(); scales[9] = m_Controls.m_ScalesRigid3DTransformScaleTranslationX->text().toDouble(); scales[10] = m_Controls.m_ScalesRigid3DTransformScaleTranslationY->text().toDouble(); scales[11] = m_Controls.m_ScalesRigid3DTransformScaleTranslationZ->text().toDouble(); } return scales; }
itk::Object::Pointer QmitkRigid3DTransformView::GetTransform | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 33 of file QmitkRigid3DTransformView.cpp.
References AccessByItk, QmitkRigidRegistrationTransformsGUIBase::m_FixedImage, and m_TransformObject.
{ if (m_FixedImage.IsNotNull()) { AccessByItk(m_FixedImage, GetTransform2); return m_TransformObject; } return NULL; }
itk::Array< double > QmitkRigid3DTransformView::GetTransformParameters | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 61 of file QmitkRigid3DTransformView.cpp.
References Ui_QmitkRigid3DTransformControls::m_CenterForInitializerRigid3D, m_Controls, Ui_QmitkRigid3DTransformControls::m_MomentsRigid3D, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale1, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale2, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale3, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale4, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale5, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale6, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale7, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale8, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale9, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationX, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationY, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationZ, and Ui_QmitkRigid3DTransformControls::m_UseOptimizerScalesRigid3D.
{ itk::Array<double> transformValues; transformValues.SetSize(15); transformValues.fill(0); transformValues[0] = m_Controls.m_UseOptimizerScalesRigid3D->isChecked(); transformValues[1] = m_Controls.m_ScalesRigid3DTransformScale1->text().toDouble(); transformValues[2] = m_Controls.m_ScalesRigid3DTransformScale2->text().toDouble(); transformValues[3] = m_Controls.m_ScalesRigid3DTransformScale3->text().toDouble(); transformValues[4] = m_Controls.m_ScalesRigid3DTransformScale4->text().toDouble(); transformValues[5] = m_Controls.m_ScalesRigid3DTransformScale5->text().toDouble(); transformValues[6] = m_Controls.m_ScalesRigid3DTransformScale6->text().toDouble(); transformValues[7] = m_Controls.m_ScalesRigid3DTransformScale7->text().toDouble(); transformValues[8] = m_Controls.m_ScalesRigid3DTransformScale8->text().toDouble(); transformValues[9] = m_Controls.m_ScalesRigid3DTransformScale9->text().toDouble(); transformValues[10] = m_Controls.m_ScalesRigid3DTransformScaleTranslationX->text().toDouble(); transformValues[11] = m_Controls.m_ScalesRigid3DTransformScaleTranslationY->text().toDouble(); transformValues[12] = m_Controls.m_ScalesRigid3DTransformScaleTranslationZ->text().toDouble(); transformValues[13] = m_Controls.m_CenterForInitializerRigid3D->isChecked(); transformValues[14] = m_Controls.m_MomentsRigid3D->isChecked(); return transformValues; }
void QmitkRigid3DTransformView::SetTransformParameters | ( | itk::Array< double > | transformValues ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 84 of file QmitkRigid3DTransformView.cpp.
References Ui_QmitkRigid3DTransformControls::m_CenterForInitializerRigid3D, m_Controls, Ui_QmitkRigid3DTransformControls::m_GeometryRigid3D, Ui_QmitkRigid3DTransformControls::m_MomentsRigid3D, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale1, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale2, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale3, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale4, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale5, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale6, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale7, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale8, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale9, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationX, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationY, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationZ, and Ui_QmitkRigid3DTransformControls::m_UseOptimizerScalesRigid3D.
{ m_Controls.m_UseOptimizerScalesRigid3D->setChecked(transformValues[0]); m_Controls.m_ScalesRigid3DTransformScale1->setText(QString::number(transformValues[1])); m_Controls.m_ScalesRigid3DTransformScale2->setText(QString::number(transformValues[2])); m_Controls.m_ScalesRigid3DTransformScale3->setText(QString::number(transformValues[3])); m_Controls.m_ScalesRigid3DTransformScale4->setText(QString::number(transformValues[4])); m_Controls.m_ScalesRigid3DTransformScale5->setText(QString::number(transformValues[5])); m_Controls.m_ScalesRigid3DTransformScale6->setText(QString::number(transformValues[6])); m_Controls.m_ScalesRigid3DTransformScale7->setText(QString::number(transformValues[7])); m_Controls.m_ScalesRigid3DTransformScale8->setText(QString::number(transformValues[8])); m_Controls.m_ScalesRigid3DTransformScale9->setText(QString::number(transformValues[9])); m_Controls.m_ScalesRigid3DTransformScaleTranslationX->setText(QString::number(transformValues[10])); m_Controls.m_ScalesRigid3DTransformScaleTranslationY->setText(QString::number(transformValues[11])); m_Controls.m_ScalesRigid3DTransformScaleTranslationZ->setText(QString::number(transformValues[12])); m_Controls.m_CenterForInitializerRigid3D->setChecked(transformValues[13]); m_Controls.m_MomentsRigid3D->setChecked(transformValues[14]); m_Controls.m_GeometryRigid3D->setChecked(!transformValues[14]); }
void QmitkRigid3DTransformView::SetupUI | ( | QWidget * | parent ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 109 of file QmitkRigid3DTransformView.cpp.
References m_Controls, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale1, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale2, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale3, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale4, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale5, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale6, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale7, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale8, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScale9, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationX, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationY, Ui_QmitkRigid3DTransformControls::m_ScalesRigid3DTransformScaleTranslationZ, and Ui_QmitkRigid3DTransformControls::setupUi().
{ m_Controls.setupUi(parent); QValidator* validatorLineEditInputFloat = new QDoubleValidator(0, 20000000, 8, this); m_Controls.m_ScalesRigid3DTransformScale1->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScale2->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScale3->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScale4->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScale5->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScale6->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScale7->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScale8->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScale9->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScaleTranslationX->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScaleTranslationY->setValidator(validatorLineEditInputFloat); m_Controls.m_ScalesRigid3DTransformScaleTranslationZ->setValidator(validatorLineEditInputFloat); }
vtkTransform * QmitkRigid3DTransformView::Transform | ( | vtkMatrix4x4 * | vtkmatrix, |
vtkTransform * | vtktransform, | ||
itk::Array< double > | transformParams | ||
) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 150 of file QmitkRigid3DTransformView.cpp.
References m_CenterX, m_CenterY, m_CenterZ, and QmitkRigidRegistrationTransformsGUIBase::m_MovingImage.
{ if (m_MovingImage.IsNotNull()) { int m = 0; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { vtkmatrix->SetElement(i, j, transformParams[m]); m++; } } float center[4]; float translation[4]; center[0] = m_CenterX; center[1] = m_CenterY; center[2] = m_CenterZ; center[3] = 1; vtkmatrix->MultiplyPoint(center, translation); vtkmatrix->SetElement(0, 3, -translation[0] + center[0] + transformParams[9]); vtkmatrix->SetElement(1, 3, -translation[1] + center[1] + transformParams[10]); vtkmatrix->SetElement(2, 3, -translation[2] + center[2] + transformParams[11]); vtktransform->SetMatrix(vtkmatrix); } return vtktransform; }
double QmitkRigid3DTransformView::m_CenterX [protected] |
Definition at line 67 of file QmitkRigid3DTransformView.h.
Referenced by Transform().
double QmitkRigid3DTransformView::m_CenterY [protected] |
Definition at line 68 of file QmitkRigid3DTransformView.h.
Referenced by Transform().
double QmitkRigid3DTransformView::m_CenterZ [protected] |
Definition at line 69 of file QmitkRigid3DTransformView.h.
Referenced by Transform().
Definition at line 63 of file QmitkRigid3DTransformView.h.
Referenced by GetScales(), GetTransformParameters(), SetTransformParameters(), and SetupUI().
itk::Object::Pointer QmitkRigid3DTransformView::m_TransformObject [protected] |
Definition at line 65 of file QmitkRigid3DTransformView.h.
Referenced by GetTransform().