Public Member Functions | Protected Attributes

QmitkSimilarity3DTransformView Class Reference

Widget for rigid registration. More...

#include <QmitkSimilarity3DTransformView.h>

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

List of all members.

Public Member Functions

 QmitkSimilarity3DTransformView (QWidget *parent=0, Qt::WindowFlags f=0)
 ~QmitkSimilarity3DTransformView ()
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::QmitkSimilarity3DTransformControls m_Controls
itk::Object::Pointer m_TransformObject
double m_CenterX
double m_CenterY
double m_CenterZ

Detailed Description

Widget for rigid registration.

Displays options for rigid registration.

Definition at line 31 of file QmitkSimilarity3DTransformView.h.


Constructor & Destructor Documentation

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

Definition at line 29 of file QmitkSimilarity3DTransformView.cpp.

{
}

Member Function Documentation

QString QmitkSimilarity3DTransformView::GetName (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 116 of file QmitkSimilarity3DTransformView.cpp.

{
  return "Similarity3D";
}
int QmitkSimilarity3DTransformView::GetNumberOfTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 181 of file QmitkSimilarity3DTransformView.cpp.

References QmitkRigidRegistrationTransformsGUIBase::m_FixedImage.

{
  if (m_FixedImage.IsNotNull())
  {
    if (m_FixedImage->GetDimension() == 2)
      return 0;
    else
      return 7;
  }
  else
    return 0;
}
itk::Array< double > QmitkSimilarity3DTransformView::GetScales (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 134 of file QmitkSimilarity3DTransformView.cpp.

References m_Controls, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale1, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale2, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale3, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale4, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationX, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationY, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationZ, and Ui_QmitkSimilarity3DTransformControls::m_UseOptimizerScalesSimilarity3D.

{
  itk::Array<double> scales;
  scales.SetSize(7);
  scales.Fill(1.0);
  if (m_Controls.m_UseOptimizerScalesSimilarity3D->isChecked())
  {
    scales[0] = m_Controls.m_ScalesSimilarity3DTransformScale1->text().toDouble();
    scales[1] = m_Controls.m_ScalesSimilarity3DTransformScale2->text().toDouble();
    scales[2] = m_Controls.m_ScalesSimilarity3DTransformScale3->text().toDouble();
    scales[3] = m_Controls.m_ScalesSimilarity3DTransformScale4->text().toDouble();
    scales[4] = m_Controls.m_ScalesSimilarity3DTransformScaleTranslationX->text().toDouble();
    scales[5] = m_Controls.m_ScalesSimilarity3DTransformScaleTranslationY->text().toDouble();
    scales[6] = m_Controls.m_ScalesSimilarity3DTransformScaleTranslationZ->text().toDouble();
  }
  return scales;
}
itk::Object::Pointer QmitkSimilarity3DTransformView::GetTransform (  ) [virtual]
itk::Array< double > QmitkSimilarity3DTransformView::GetTransformParameters (  ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 83 of file QmitkSimilarity3DTransformView.cpp.

References Ui_QmitkSimilarity3DTransformControls::m_CenterForInitializerSimilarity3D, m_Controls, Ui_QmitkSimilarity3DTransformControls::m_MomentsSimilarity3D, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale1, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale2, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale3, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale4, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationX, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationY, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationZ, and Ui_QmitkSimilarity3DTransformControls::m_UseOptimizerScalesSimilarity3D.

{
  itk::Array<double> transformValues;
  transformValues.SetSize(10);
  transformValues.fill(0);
  transformValues[0] = m_Controls.m_UseOptimizerScalesSimilarity3D->isChecked();
  transformValues[1] = m_Controls.m_ScalesSimilarity3DTransformScale1->text().toDouble();
  transformValues[2] = m_Controls.m_ScalesSimilarity3DTransformScale2->text().toDouble();
  transformValues[3] = m_Controls.m_ScalesSimilarity3DTransformScale3->text().toDouble();
  transformValues[4] = m_Controls.m_ScalesSimilarity3DTransformScale4->text().toDouble();
  transformValues[5] = m_Controls.m_ScalesSimilarity3DTransformScaleTranslationX->text().toDouble();
  transformValues[6] = m_Controls.m_ScalesSimilarity3DTransformScaleTranslationY->text().toDouble();
  transformValues[7] = m_Controls.m_ScalesSimilarity3DTransformScaleTranslationZ->text().toDouble();
  transformValues[8] = m_Controls.m_CenterForInitializerSimilarity3D->isChecked();
  transformValues[9] = m_Controls.m_MomentsSimilarity3D->isChecked();
  return transformValues;
}
void QmitkSimilarity3DTransformView::SetTransformParameters ( itk::Array< double >  transformValues ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 101 of file QmitkSimilarity3DTransformView.cpp.

References Ui_QmitkSimilarity3DTransformControls::m_CenterForInitializerSimilarity3D, m_Controls, Ui_QmitkSimilarity3DTransformControls::m_GeometrySimilarity3D, Ui_QmitkSimilarity3DTransformControls::m_MomentsSimilarity3D, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale1, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale2, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale3, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale4, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationX, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationY, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationZ, and Ui_QmitkSimilarity3DTransformControls::m_UseOptimizerScalesSimilarity3D.

{
  m_Controls.m_UseOptimizerScalesSimilarity3D->setChecked(transformValues[0]);
  m_Controls.m_ScalesSimilarity3DTransformScale1->setText(QString::number(transformValues[1]));
  m_Controls.m_ScalesSimilarity3DTransformScale2->setText(QString::number(transformValues[2]));
  m_Controls.m_ScalesSimilarity3DTransformScale3->setText(QString::number(transformValues[3]));
  m_Controls.m_ScalesSimilarity3DTransformScale4->setText(QString::number(transformValues[4]));
  m_Controls.m_ScalesSimilarity3DTransformScaleTranslationX->setText(QString::number(transformValues[5]));
  m_Controls.m_ScalesSimilarity3DTransformScaleTranslationY->setText(QString::number(transformValues[6]));
  m_Controls.m_ScalesSimilarity3DTransformScaleTranslationZ->setText(QString::number(transformValues[7]));
  m_Controls.m_CenterForInitializerSimilarity3D->setChecked(transformValues[8]);
  m_Controls.m_MomentsSimilarity3D->setChecked(transformValues[9]);
  m_Controls.m_GeometrySimilarity3D->setChecked(!transformValues[9]);
}
void QmitkSimilarity3DTransformView::SetupUI ( QWidget *  parent ) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 121 of file QmitkSimilarity3DTransformView.cpp.

References m_Controls, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale1, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale2, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale3, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScale4, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationX, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationY, Ui_QmitkSimilarity3DTransformControls::m_ScalesSimilarity3DTransformScaleTranslationZ, and Ui_QmitkSimilarity3DTransformControls::setupUi().

{
  m_Controls.setupUi(parent);
  QValidator* validatorLineEditInputFloat = new QDoubleValidator(0, 20000000, 8, this);
  m_Controls.m_ScalesSimilarity3DTransformScale1->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesSimilarity3DTransformScale2->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesSimilarity3DTransformScale3->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesSimilarity3DTransformScale4->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesSimilarity3DTransformScaleTranslationX->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesSimilarity3DTransformScaleTranslationY->setValidator(validatorLineEditInputFloat);
  m_Controls.m_ScalesSimilarity3DTransformScaleTranslationZ->setValidator(validatorLineEditInputFloat);
}
vtkTransform * QmitkSimilarity3DTransformView::Transform ( vtkMatrix4x4 *  vtkmatrix,
vtkTransform *  vtktransform,
itk::Array< double >  transformParams 
) [virtual]

Implements QmitkRigidRegistrationTransformsGUIBase.

Definition at line 152 of file QmitkSimilarity3DTransformView.cpp.

References m_CenterX, m_CenterY, m_CenterZ, and QmitkRigidRegistrationTransformsGUIBase::m_MovingImage.

{
  if (m_MovingImage.IsNotNull())
  {
    itk::Similarity3DTransform<double>::Pointer similarityTransform = itk::Similarity3DTransform<double>::New();
    similarityTransform->SetParameters(transformParams);
    itk::Matrix<double, 3, 3> Matrix = similarityTransform->GetMatrix();
    for (int i = 0; i < 3; i++)
    {
      for (int j = 0; j < 3; j++)
      {
        vtkmatrix->SetElement(i, j, Matrix[i][j]);
      }
    }
    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[4]);
    vtkmatrix->SetElement(1, 3, -translation[1] + center[1] + transformParams[5]);
    vtkmatrix->SetElement(2, 3, -translation[2] + center[2] + transformParams[6]);
    vtktransform->SetMatrix(vtkmatrix);
  }
  return vtktransform;
}

Member Data Documentation

Definition at line 67 of file QmitkSimilarity3DTransformView.h.

Referenced by Transform().

Definition at line 68 of file QmitkSimilarity3DTransformView.h.

Referenced by Transform().

Definition at line 69 of file QmitkSimilarity3DTransformView.h.

Referenced by Transform().

itk::Object::Pointer QmitkSimilarity3DTransformView::m_TransformObject [protected]

Definition at line 65 of file QmitkSimilarity3DTransformView.h.

Referenced by GetTransform().


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