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


Public Member Functions | |
| QmitkAffineTransformView (QWidget *parent=0, Qt::WindowFlags f=0) | |
| ~QmitkAffineTransformView () | |
| 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::QmitkAffineTransformControls | 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 QmitkAffineTransformView.h.
| QmitkAffineTransformView::QmitkAffineTransformView | ( | QWidget * | parent = 0, |
| Qt::WindowFlags | f = 0 |
||
| ) |
Definition at line 24 of file QmitkAffineTransformView.cpp.
: QmitkRigidRegistrationTransformsGUIBase(parent, f), m_CenterX(0), m_CenterY(0), m_CenterZ(0) { }
| QmitkAffineTransformView::~QmitkAffineTransformView | ( | ) |
Definition at line 29 of file QmitkAffineTransformView.cpp.
{
}
| QString QmitkAffineTransformView::GetName | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 122 of file QmitkAffineTransformView.cpp.
{
return "Affine";
}
| int QmitkAffineTransformView::GetNumberOfTransformParameters | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 210 of file QmitkAffineTransformView.cpp.
References m_Controls, QmitkRigidRegistrationTransformsGUIBase::m_FixedImage, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale7, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale8, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale9, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationX, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationY, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationZ, Ui_QmitkAffineTransformControls::textLabel11_3, Ui_QmitkAffineTransformControls::textLabel12_3, Ui_QmitkAffineTransformControls::textLabel13_2, Ui_QmitkAffineTransformControls::textLabel2_7, Ui_QmitkAffineTransformControls::textLabel3_6, Ui_QmitkAffineTransformControls::textLabel4_4, Ui_QmitkAffineTransformControls::textLabel5_4, and Ui_QmitkAffineTransformControls::textLabel6_4.
{
if (m_FixedImage.IsNotNull())
{
if (m_FixedImage->GetDimension() == 2)
{
m_Controls.m_ScalesAffineTransformScale7->hide();
m_Controls.m_ScalesAffineTransformScale8->hide();
m_Controls.m_ScalesAffineTransformScale9->hide();
m_Controls.m_ScalesAffineTransformScaleTranslationX->hide();
m_Controls.m_ScalesAffineTransformScaleTranslationY->hide();
m_Controls.m_ScalesAffineTransformScaleTranslationZ->hide();
m_Controls.textLabel2_7->setText("Translation Scale X:");
m_Controls.textLabel3_6->setText("Translation Scale Y:");
m_Controls.textLabel4_4->hide();
m_Controls.textLabel5_4->hide();
m_Controls.textLabel6_4->hide();
m_Controls.textLabel11_3->hide();
m_Controls.textLabel12_3->hide();
m_Controls.textLabel13_2->hide();
return 6;
}
else
{
m_Controls.m_ScalesAffineTransformScale7->show();
m_Controls.m_ScalesAffineTransformScale8->show();
m_Controls.m_ScalesAffineTransformScale9->show();
m_Controls.m_ScalesAffineTransformScaleTranslationX->show();
m_Controls.m_ScalesAffineTransformScaleTranslationY->show();
m_Controls.m_ScalesAffineTransformScaleTranslationZ->show();
m_Controls.textLabel2_7->setText("Scale 5:");
m_Controls.textLabel3_6->setText("Scale 6:");
m_Controls.textLabel4_4->show();
m_Controls.textLabel5_4->show();
m_Controls.textLabel6_4->show();
m_Controls.textLabel11_3->show();
m_Controls.textLabel12_3->show();
m_Controls.textLabel13_2->show();
return 12;
}
}
else
return 0;
}
| itk::Array< double > QmitkAffineTransformView::GetScales | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 145 of file QmitkAffineTransformView.cpp.
References m_Controls, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale1, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale2, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale3, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale4, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale5, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale6, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale7, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale8, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale9, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationX, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationY, and Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationZ.
{
itk::Array<double> scales;
scales.SetSize(12);
scales.Fill(1.0);
scales[0] = m_Controls.m_ScalesAffineTransformScale1->text().toDouble();
scales[1] = m_Controls.m_ScalesAffineTransformScale2->text().toDouble();
scales[2] = m_Controls.m_ScalesAffineTransformScale3->text().toDouble();
scales[3] = m_Controls.m_ScalesAffineTransformScale4->text().toDouble();
scales[4] = m_Controls.m_ScalesAffineTransformScale5->text().toDouble();
scales[5] = m_Controls.m_ScalesAffineTransformScale6->text().toDouble();
scales[6] = m_Controls.m_ScalesAffineTransformScale7->text().toDouble();
scales[7] = m_Controls.m_ScalesAffineTransformScale8->text().toDouble();
scales[8] = m_Controls.m_ScalesAffineTransformScale9->text().toDouble();
scales[9] = m_Controls.m_ScalesAffineTransformScaleTranslationX->text().toDouble();
scales[10] = m_Controls.m_ScalesAffineTransformScaleTranslationY->text().toDouble();
scales[11] = m_Controls.m_ScalesAffineTransformScaleTranslationZ->text().toDouble();
return scales;
}
| itk::Object::Pointer QmitkAffineTransformView::GetTransform | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 33 of file QmitkAffineTransformView.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 > QmitkAffineTransformView::GetTransformParameters | ( | ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 79 of file QmitkAffineTransformView.cpp.
References Ui_QmitkAffineTransformControls::m_CenterForInitializerAffine, m_Controls, Ui_QmitkAffineTransformControls::m_MomentsAffine, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale1, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale2, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale3, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale4, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale5, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale6, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale7, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale8, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale9, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationX, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationY, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationZ, and Ui_QmitkAffineTransformControls::m_UseOptimizerScalesAffine.
{
itk::Array<double> transformValues;
transformValues.SetSize(15);
transformValues.fill(0);
transformValues[0] = m_Controls.m_UseOptimizerScalesAffine->isChecked();
transformValues[1] = m_Controls.m_ScalesAffineTransformScale1->text().toDouble();
transformValues[2] = m_Controls.m_ScalesAffineTransformScale2->text().toDouble();
transformValues[3] = m_Controls.m_ScalesAffineTransformScale3->text().toDouble();
transformValues[4] = m_Controls.m_ScalesAffineTransformScale4->text().toDouble();
transformValues[5] = m_Controls.m_ScalesAffineTransformScale5->text().toDouble();
transformValues[6] = m_Controls.m_ScalesAffineTransformScale6->text().toDouble();
transformValues[7] = m_Controls.m_ScalesAffineTransformScale7->text().toDouble();
transformValues[8] = m_Controls.m_ScalesAffineTransformScale8->text().toDouble();
transformValues[9] = m_Controls.m_ScalesAffineTransformScale9->text().toDouble();
transformValues[10] = m_Controls.m_ScalesAffineTransformScaleTranslationX->text().toDouble();
transformValues[11] = m_Controls.m_ScalesAffineTransformScaleTranslationY->text().toDouble();
transformValues[12] = m_Controls.m_ScalesAffineTransformScaleTranslationZ->text().toDouble();
transformValues[13] = m_Controls.m_CenterForInitializerAffine->isChecked();
transformValues[14] = m_Controls.m_MomentsAffine->isChecked();
return transformValues;
}
| void QmitkAffineTransformView::SetTransformParameters | ( | itk::Array< double > | transformValues ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 102 of file QmitkAffineTransformView.cpp.
References Ui_QmitkAffineTransformControls::m_CenterForInitializerAffine, m_Controls, Ui_QmitkAffineTransformControls::m_GeometryAffine, Ui_QmitkAffineTransformControls::m_MomentsAffine, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale1, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale2, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale3, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale4, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale5, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale6, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale7, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale8, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale9, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationX, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationY, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationZ, and Ui_QmitkAffineTransformControls::m_UseOptimizerScalesAffine.
{
m_Controls.m_UseOptimizerScalesAffine->setChecked(transformValues[0]);
m_Controls.m_ScalesAffineTransformScale1->setText(QString::number(transformValues[1]));
m_Controls.m_ScalesAffineTransformScale2->setText(QString::number(transformValues[2]));
m_Controls.m_ScalesAffineTransformScale3->setText(QString::number(transformValues[3]));
m_Controls.m_ScalesAffineTransformScale4->setText(QString::number(transformValues[4]));
m_Controls.m_ScalesAffineTransformScale5->setText(QString::number(transformValues[5]));
m_Controls.m_ScalesAffineTransformScale6->setText(QString::number(transformValues[6]));
m_Controls.m_ScalesAffineTransformScale7->setText(QString::number(transformValues[7]));
m_Controls.m_ScalesAffineTransformScale8->setText(QString::number(transformValues[8]));
m_Controls.m_ScalesAffineTransformScale9->setText(QString::number(transformValues[9]));
m_Controls.m_ScalesAffineTransformScaleTranslationX->setText(QString::number(transformValues[10]));
m_Controls.m_ScalesAffineTransformScaleTranslationY->setText(QString::number(transformValues[11]));
m_Controls.m_ScalesAffineTransformScaleTranslationZ->setText(QString::number(transformValues[12]));
m_Controls.m_CenterForInitializerAffine->setChecked(transformValues[13]);
m_Controls.m_MomentsAffine->setChecked(transformValues[14]);
m_Controls.m_GeometryAffine->setChecked(!transformValues[14]);
}
| void QmitkAffineTransformView::SetupUI | ( | QWidget * | parent ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 127 of file QmitkAffineTransformView.cpp.
References m_Controls, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale1, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale2, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale3, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale4, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale5, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale6, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale7, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale8, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScale9, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationX, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationY, Ui_QmitkAffineTransformControls::m_ScalesAffineTransformScaleTranslationZ, and Ui_QmitkAffineTransformControls::setupUi().
{
m_Controls.setupUi(parent);
QValidator* validatorLineEditInputFloat = new QDoubleValidator(0, 20000000, 8, this);
m_Controls.m_ScalesAffineTransformScale1->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScale2->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScale3->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScale4->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScale5->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScale6->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScale7->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScale8->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScale9->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScaleTranslationX->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScaleTranslationY->setValidator(validatorLineEditInputFloat);
m_Controls.m_ScalesAffineTransformScaleTranslationZ->setValidator(validatorLineEditInputFloat);
}
| vtkTransform * QmitkAffineTransformView::Transform | ( | vtkMatrix4x4 * | vtkmatrix, |
| vtkTransform * | vtktransform, | ||
| itk::Array< double > | transformParams | ||
| ) | [virtual] |
Implements QmitkRigidRegistrationTransformsGUIBase.
Definition at line 165 of file QmitkAffineTransformView.cpp.
References m_CenterX, m_CenterY, m_CenterZ, QmitkRigidRegistrationTransformsGUIBase::m_FixedImage, and QmitkRigidRegistrationTransformsGUIBase::m_MovingImage.
{
if (m_MovingImage.IsNotNull())
{
// - the 9 rotation-coefficients are copied
// directly to the top left part of the matrix
int m = 0;
for (unsigned int i = 0; i < m_FixedImage->GetDimension(); i++)
{
for (unsigned int j = 0; j < m_FixedImage->GetDimension(); j++)
{
vtkmatrix->SetElement(i, j, transformParams[m]);
m++;
}
}
// - the 3 translation-coefficients are corrected to take
// into account the center of the transformation
float center[4];
center[0] = m_CenterX;
center[1] = m_CenterY;
center[2] = m_CenterZ;
center[3] = 1;
std::cout<< "rotation center: " << center[0] << " " << center[1] << " " << center [2] << std::endl;
float translation[4];
vtkmatrix->MultiplyPoint(center, translation);
if (m_FixedImage->GetDimension() == 2)
{
vtkmatrix->SetElement(0, 3, -translation[0] + center[0] + transformParams[4]);
vtkmatrix->SetElement(1, 3, -translation[1] + center[1] + transformParams[5]);
}
else if (m_FixedImage->GetDimension() == 3)
{
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]);
}
// set the transform matrix to init the transform
vtktransform->SetMatrix(vtkmatrix);
}
return vtktransform;
}
double QmitkAffineTransformView::m_CenterX [protected] |
Definition at line 67 of file QmitkAffineTransformView.h.
Referenced by Transform().
double QmitkAffineTransformView::m_CenterY [protected] |
Definition at line 68 of file QmitkAffineTransformView.h.
Referenced by Transform().
double QmitkAffineTransformView::m_CenterZ [protected] |
Definition at line 69 of file QmitkAffineTransformView.h.
Referenced by Transform().
Definition at line 63 of file QmitkAffineTransformView.h.
Referenced by GetNumberOfTransformParameters(), GetScales(), GetTransformParameters(), SetTransformParameters(), and SetupUI().
itk::Object::Pointer QmitkAffineTransformView::m_TransformObject [protected] |
Definition at line 65 of file QmitkAffineTransformView.h.
Referenced by GetTransform().
1.7.2