QmitkDiffusionQuantificationView. More...
#include <QmitkDiffusionQuantificationView.h>


Public Member Functions | |
| QmitkDiffusionQuantificationView () | |
| virtual | ~QmitkDiffusionQuantificationView () |
| virtual void | CreateQtPartControl (QWidget *parent) |
| virtual void | CreateConnections () |
| Creation of the connections of main and control widget. | |
| virtual void | Activated () |
| Called when the functionality is activated. | |
| virtual void | Deactivated () |
| virtual void | StdMultiWidgetAvailable (QmitkStdMultiWidget &stdMultiWidget) |
| virtual void | StdMultiWidgetNotAvailable () |
Static Public Attributes | |
| static const std::string | VIEW_ID = "org.mitk.views.diffusionquantification" |
Protected Slots | |
| void | GFACheckboxClicked () |
| void | GFA () |
| void | Curvature () |
| void | FA () |
| void | RA () |
| void | AD () |
| void | RD () |
| void | ClusterAnisotropy () |
| void | QBIQuantify (int method) |
| void | QBIQuantification (mitk::DataStorage::SetOfObjects::Pointer inImages, int method) |
| void | TensorQuantify (int method) |
| void | TensorQuantification (mitk::DataStorage::SetOfObjects::Pointer inImages, int method) |
Protected Attributes | |
| Ui::QmitkDiffusionQuantificationViewControls * | m_Controls |
| QmitkStdMultiWidget * | m_MultiWidget |
| berry::ISelectionListener::Pointer | m_SelListener |
| berry::IStructuredSelection::ConstPointer | m_CurrentSelection |
Static Protected Attributes | |
| static const float | m_ScaleDAIValues = 100.0 |
Friends | |
| struct | DqSelListener |
QmitkDiffusionQuantificationView.
Document your class here.
Definition at line 42 of file QmitkDiffusionQuantificationView.h.
| QmitkDiffusionQuantificationView::QmitkDiffusionQuantificationView | ( | ) |
Definition at line 125 of file QmitkDiffusionQuantificationView.cpp.
: QmitkFunctionality(), m_Controls(NULL), m_MultiWidget(NULL) { }
| QmitkDiffusionQuantificationView::~QmitkDiffusionQuantificationView | ( | ) | [virtual] |
Definition at line 132 of file QmitkDiffusionQuantificationView.cpp.
References berry::WorkbenchPart::GetSite(), and m_SelListener.
{
this->GetSite()->GetWorkbenchWindow()->GetSelectionService()->RemovePostSelectionListener(/*"org.mitk.views.datamanager",*/ m_SelListener);
}
| void QmitkDiffusionQuantificationView::Activated | ( | ) | [virtual] |
Called when the functionality is activated.
Reimplemented from QmitkFunctionality.
Definition at line 187 of file QmitkDiffusionQuantificationView.cpp.
References berry::SmartPointer< TObjectType >::Cast(), berry::WorkbenchPart::GetSite(), m_CurrentSelection, and m_SelListener.
{
berry::ISelection::ConstPointer sel(
this->GetSite()->GetWorkbenchWindow()->GetSelectionService()->GetSelection("org.mitk.views.datamanager"));
m_CurrentSelection = sel.Cast<const IStructuredSelection>();
m_SelListener.Cast<DqSelListener>()->DoSelectionChanged(sel);
QmitkFunctionality::Activated();
}
| void QmitkDiffusionQuantificationView::AD | ( | ) | [protected, slot] |
Definition at line 234 of file QmitkDiffusionQuantificationView.cpp.
References TensorQuantify().
Referenced by CreateConnections().
{
TensorQuantify(2);
}
| void QmitkDiffusionQuantificationView::ClusterAnisotropy | ( | ) | [protected, slot] |
Definition at line 244 of file QmitkDiffusionQuantificationView.cpp.
References TensorQuantify().
Referenced by CreateConnections().
{
TensorQuantify(4);
}
| void QmitkDiffusionQuantificationView::CreateConnections | ( | ) | [virtual] |
Creation of the connections of main and control widget.
Definition at line 172 of file QmitkDiffusionQuantificationView.cpp.
References AD(), ClusterAnisotropy(), Curvature(), FA(), GFA(), GFACheckboxClicked(), Ui_QmitkDiffusionQuantificationViewControls::m_ADButton, Ui_QmitkDiffusionQuantificationViewControls::m_ClusteringAnisotropy, m_Controls, Ui_QmitkDiffusionQuantificationViewControls::m_CurvatureButton, Ui_QmitkDiffusionQuantificationViewControls::m_FAButton, Ui_QmitkDiffusionQuantificationViewControls::m_GFAButton, Ui_QmitkDiffusionQuantificationViewControls::m_RAButton, Ui_QmitkDiffusionQuantificationViewControls::m_RDButton, Ui_QmitkDiffusionQuantificationViewControls::m_StandardGFACheckbox, RA(), and RD().
Referenced by CreateQtPartControl().
{
if ( m_Controls )
{
connect( (QObject*)(m_Controls->m_StandardGFACheckbox), SIGNAL(clicked()), this, SLOT(GFACheckboxClicked()) );
connect( (QObject*)(m_Controls->m_GFAButton), SIGNAL(clicked()), this, SLOT(GFA()) );
connect( (QObject*)(m_Controls->m_CurvatureButton), SIGNAL(clicked()), this, SLOT(Curvature()) );
connect( (QObject*)(m_Controls->m_FAButton), SIGNAL(clicked()), this, SLOT(FA()) );
connect( (QObject*)(m_Controls->m_RAButton), SIGNAL(clicked()), this, SLOT(RA()) );
connect( (QObject*)(m_Controls->m_ADButton), SIGNAL(clicked()), this, SLOT(AD()) );
connect( (QObject*)(m_Controls->m_RDButton), SIGNAL(clicked()), this, SLOT(RD()) );
connect( (QObject*)(m_Controls->m_ClusteringAnisotropy), SIGNAL(clicked()), this, SLOT(ClusterAnisotropy()) );
}
}
| void QmitkDiffusionQuantificationView::CreateQtPartControl | ( | QWidget * | parent ) | [virtual] |
Implements berry::QtViewPart.
Definition at line 137 of file QmitkDiffusionQuantificationView.cpp.
References berry::SmartPointer< TObjectType >::Cast(), CreateConnections(), DqSelListener, Ui_QmitkDiffusionQuantificationViewControls::frame_3, berry::WorkbenchPart::GetSite(), GFACheckboxClicked(), m_Controls, m_CurrentSelection, Ui_QmitkDiffusionQuantificationViewControls::m_CurvatureButton, m_SelListener, Ui_QmitkDiffusionQuantificationViewControls::m_StandardGFACheckbox, and Ui_QmitkDiffusionQuantificationViewControls::setupUi().
{
if (!m_Controls)
{
// create GUI widgets
m_Controls = new Ui::QmitkDiffusionQuantificationViewControls;
m_Controls->setupUi(parent);
this->CreateConnections();
GFACheckboxClicked();
#ifndef DIFFUSION_IMAGING_EXTENDED
m_Controls->m_StandardGFACheckbox->setVisible(false);
m_Controls->frame_3->setVisible(false);
m_Controls->m_CurvatureButton->setVisible(false);
#endif
}
m_SelListener = berry::ISelectionListener::Pointer(new DqSelListener(this));
this->GetSite()->GetWorkbenchWindow()->GetSelectionService()->AddPostSelectionListener(/*"org.mitk.views.datamanager",*/ m_SelListener);
berry::ISelection::ConstPointer sel(
this->GetSite()->GetWorkbenchWindow()->GetSelectionService()->GetSelection("org.mitk.views.datamanager"));
m_CurrentSelection = sel.Cast<const IStructuredSelection>();
m_SelListener.Cast<DqSelListener>()->DoSelectionChanged(sel);
}
| void QmitkDiffusionQuantificationView::Curvature | ( | ) | [protected, slot] |
Definition at line 219 of file QmitkDiffusionQuantificationView.cpp.
References QBIQuantify().
Referenced by CreateConnections().
{
QBIQuantify(12);
}
| void QmitkDiffusionQuantificationView::Deactivated | ( | ) | [virtual] |
Only called when IsExclusiveFunctionality() returns true.
Reimplemented from QmitkFunctionality.
Definition at line 196 of file QmitkDiffusionQuantificationView.cpp.
| void QmitkDiffusionQuantificationView::FA | ( | ) | [protected, slot] |
Definition at line 224 of file QmitkDiffusionQuantificationView.cpp.
References TensorQuantify().
Referenced by CreateConnections().
{
TensorQuantify(0);
}
| void QmitkDiffusionQuantificationView::GFA | ( | ) | [protected, slot] |
Definition at line 207 of file QmitkDiffusionQuantificationView.cpp.
References m_Controls, Ui_QmitkDiffusionQuantificationViewControls::m_StandardGFACheckbox, and QBIQuantify().
Referenced by CreateConnections().
{
if(m_Controls->m_StandardGFACheckbox->isChecked())
{
QBIQuantify(13);
}
else
{
QBIQuantify(0);
}
}
| void QmitkDiffusionQuantificationView::GFACheckboxClicked | ( | ) | [protected, slot] |
Definition at line 201 of file QmitkDiffusionQuantificationView.cpp.
References Ui_QmitkDiffusionQuantificationViewControls::frame_2, and m_Controls.
Referenced by CreateConnections(), and CreateQtPartControl().
{
m_Controls->frame_2->setVisible(m_Controls->
m_StandardGFACheckbox->isChecked());
}
| void QmitkDiffusionQuantificationView::QBIQuantification | ( | mitk::DataStorage::SetOfObjects::Pointer | inImages, |
| int | method | ||
| ) | [protected, slot] |
Definition at line 305 of file QmitkDiffusionQuantificationView.cpp.
References QmitkFunctionality::GetDefaultDataStorage(), mitk::StatusBar::GetInstance(), m_Controls, m_MultiWidget, Ui_QmitkDiffusionQuantificationViewControls::m_ParamKEdit, Ui_QmitkDiffusionQuantificationViewControls::m_ParamPEdit, m_ScaleDAIValues, Ui_QmitkDiffusionQuantificationViewControls::MaxAngle, MBI_DEBUG, MBI_INFO, Ui_QmitkDiffusionQuantificationViewControls::MinAngle, mitk::StringProperty::New(), mitk::DataNode::New(), mitk::Image::New(), QBALL_ODFSIZE, and QmitkStdMultiWidget::RequestUpdate().
Referenced by QBIQuantify().
{
itk::TimeProbe clock;
QString status;
int nrFiles = inImages->size();
if (!nrFiles) return;
mitk::DataStorage::SetOfObjects::const_iterator itemiter( inImages->begin() );
mitk::DataStorage::SetOfObjects::const_iterator itemiterend( inImages->end() );
std::vector<mitk::DataNode::Pointer> nodes;
while ( itemiter != itemiterend ) // for all items
{
typedef float TOdfPixelType;
const int odfsize = QBALL_ODFSIZE;
typedef itk::Vector<TOdfPixelType,odfsize> OdfVectorType;
typedef itk::Image<OdfVectorType,3> OdfVectorImgType;
mitk::Image* vol =
static_cast<mitk::Image*>((*itemiter)->GetData());
OdfVectorImgType::Pointer itkvol = OdfVectorImgType::New();
mitk::CastToItkImage<OdfVectorImgType>(vol, itkvol);
std::string nodename;
(*itemiter)->GetStringProperty("name", nodename);
++itemiter;
float p1 = m_Controls->m_ParamKEdit->text().toFloat();
float p2 = m_Controls->m_ParamPEdit->text().toFloat();
// COMPUTE RA
clock.Start();
MBI_INFO << "Computing GFA ";
mitk::StatusBar::GetInstance()->DisplayText(status.sprintf(
"Computing GFA for %s", nodename.c_str()).toAscii());
typedef OdfVectorType::ValueType RealValueType;
typedef itk::Image< RealValueType, 3 > RAImageType;
typedef itk::DiffusionQballGeneralizedFaImageFilter<TOdfPixelType,TOdfPixelType,odfsize>
GfaFilterType;
GfaFilterType::Pointer gfaFilter = GfaFilterType::New();
gfaFilter->SetInput(itkvol);
gfaFilter->SetNumberOfThreads(8);
double scale = 1;
std::string newname;
newname.append(nodename);
switch(method)
{
case 0:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_STANDARD);
newname.append("GFA");
scale = m_ScaleDAIValues;
break;
}
case 1:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_QUANTILES_HIGH_LOW);
newname.append("01");
scale = m_ScaleDAIValues;
break;
}
case 2:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_QUANTILE_HIGH);
newname.append("02");
scale = m_ScaleDAIValues;
break;
}
case 3:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_MAX_ODF_VALUE);
newname.append("03");
scale = m_ScaleDAIValues;
break;
}
case 4:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_DECONVOLUTION_COEFFS);
newname.append("04");
scale = m_ScaleDAIValues;
break;
}
case 5:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_MIN_MAX_NORMALIZED_STANDARD);
newname.append("05");
scale = m_ScaleDAIValues;
break;
}
case 6:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_NORMALIZED_ENTROPY);
newname.append("06");
break;
}
case 7:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_NEMATIC_ORDER_PARAMETER);
newname.append("07");
scale = m_ScaleDAIValues;
break;
}
case 8:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_QUANTILES_LOW_HIGH);
newname.append("08");
scale = m_ScaleDAIValues;
break;
}
case 9:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_QUANTILE_LOW);
newname.append("09");
scale = m_ScaleDAIValues;
break;
}
case 10:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_MIN_ODF_VALUE);
newname.append("10");
scale = m_ScaleDAIValues;
break;
}
case 11:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_STD_BY_MAX);
newname.append("11");
scale = m_ScaleDAIValues;
break;
}
case 12:
{
p1 = m_Controls->MinAngle->text().toFloat();
p2 = m_Controls->MaxAngle->text().toFloat();
gfaFilter->SetComputationMethod(GfaFilterType::GFA_PRINCIPLE_CURVATURE);
QString paramString;
paramString = paramString.append("PC%1-%2").arg(p1).arg(p2);
newname.append(paramString.toAscii());
gfaFilter->SetParam1(p1);
gfaFilter->SetParam2(p2);
scale = m_ScaleDAIValues;
break;
}
case 13:
{
gfaFilter->SetComputationMethod(GfaFilterType::GFA_GENERALIZED_GFA);
QString paramString;
paramString = paramString.append("GFAK%1P%2").arg(p1).arg(p2);
newname.append(paramString.toAscii());
gfaFilter->SetParam1(p1);
gfaFilter->SetParam2(p2);
scale = m_ScaleDAIValues;
break;
}
default:
{
newname.append("0");
gfaFilter->SetComputationMethod(GfaFilterType::GFA_STANDARD);
scale = m_ScaleDAIValues;
}
}
gfaFilter->Update();
clock.Stop();
MBI_DEBUG << "took " << clock.GetMeanTime() << "s.";
typedef itk::Image<TOdfPixelType, 3> ImgType;
ImgType::Pointer img = ImgType::New();
img->SetSpacing( gfaFilter->GetOutput()->GetSpacing() ); // Set the image spacing
img->SetOrigin( gfaFilter->GetOutput()->GetOrigin() ); // Set the image origin
img->SetDirection( gfaFilter->GetOutput()->GetDirection() ); // Set the image direction
img->SetLargestPossibleRegion( gfaFilter->GetOutput()->GetLargestPossibleRegion());
img->SetBufferedRegion( gfaFilter->GetOutput()->GetLargestPossibleRegion() );
img->Allocate();
itk::ImageRegionIterator<ImgType> ot (img, img->GetLargestPossibleRegion() );
ot = ot.Begin();
itk::ImageRegionConstIterator<GfaFilterType::OutputImageType> it
(gfaFilter->GetOutput(), gfaFilter->GetOutput()->GetLargestPossibleRegion() );
it = it.Begin();
for (it = it.Begin(); !it.IsAtEnd(); ++it)
{
GfaFilterType::OutputImageType::PixelType val = it.Get();
ot.Set(val * scale);
++ot;
}
// GFA TO DATATREE
mitk::Image::Pointer image = mitk::Image::New();
image->InitializeByItk( img.GetPointer() );
image->SetVolume( img->GetBufferPointer() );
mitk::DataNode::Pointer node=mitk::DataNode::New();
node->SetData( image );
node->SetProperty( "name", mitk::StringProperty::New(newname) );
nodes.push_back(node);
mitk::StatusBar::GetInstance()->DisplayText("Computation complete.");
}
std::vector<mitk::DataNode::Pointer>::iterator nodeIt;
for(nodeIt = nodes.begin(); nodeIt != nodes.end(); ++nodeIt)
GetDefaultDataStorage()->Add(*nodeIt);
m_MultiWidget->RequestUpdate();
}
| void QmitkDiffusionQuantificationView::QBIQuantify | ( | int | method ) | [protected, slot] |
Definition at line 249 of file QmitkDiffusionQuantificationView.cpp.
References berry::SmartPointer< TObjectType >::Cast(), m_CurrentSelection, and QBIQuantification().
Referenced by Curvature(), and GFA().
{
if (m_CurrentSelection)
{
mitk::DataStorage::SetOfObjects::Pointer set =
mitk::DataStorage::SetOfObjects::New();
int at = 0;
for (IStructuredSelection::iterator i = m_CurrentSelection->Begin();
i != m_CurrentSelection->End();
++i)
{
if (mitk::DataNodeObject::Pointer nodeObj = i->Cast<mitk::DataNodeObject>())
{
mitk::DataNode::Pointer node = nodeObj->GetDataNode();
if(QString("QBallImage").compare(node->GetData()->GetNameOfClass())==0)
{
set->InsertElement(at++, node);
}
}
}
QBIQuantification(set, method);
}
}
| void QmitkDiffusionQuantificationView::RA | ( | ) | [protected, slot] |
Definition at line 229 of file QmitkDiffusionQuantificationView.cpp.
References TensorQuantify().
Referenced by CreateConnections().
{
TensorQuantify(1);
}
| void QmitkDiffusionQuantificationView::RD | ( | ) | [protected, slot] |
Definition at line 239 of file QmitkDiffusionQuantificationView.cpp.
References TensorQuantify().
Referenced by CreateConnections().
{
TensorQuantify(3);
}
| void QmitkDiffusionQuantificationView::StdMultiWidgetAvailable | ( | QmitkStdMultiWidget & | stdMultiWidget ) | [virtual] |
Called when a StdMultiWidget is available. Should not be used anymore, see GetActiveStdMultiWidget()
Reimplemented from QmitkFunctionality.
Definition at line 162 of file QmitkDiffusionQuantificationView.cpp.
References m_MultiWidget.
{
m_MultiWidget = &stdMultiWidget;
}
| void QmitkDiffusionQuantificationView::StdMultiWidgetNotAvailable | ( | ) | [virtual] |
Called when no StdMultiWidget is available anymore. Should not be used anymore, see GetActiveStdMultiWidget()
Reimplemented from QmitkFunctionality.
Definition at line 167 of file QmitkDiffusionQuantificationView.cpp.
References m_MultiWidget.
{
m_MultiWidget = NULL;
}
| void QmitkDiffusionQuantificationView::TensorQuantification | ( | mitk::DataStorage::SetOfObjects::Pointer | inImages, |
| int | method | ||
| ) | [protected, slot] |
Definition at line 516 of file QmitkDiffusionQuantificationView.cpp.
References QmitkFunctionality::GetDefaultDataStorage(), mitk::StatusBar::GetInstance(), m_MultiWidget, m_ScaleDAIValues, MBI_DEBUG, MBI_INFO, mitk::StringProperty::New(), mitk::DataNode::New(), mitk::Image::New(), and QmitkStdMultiWidget::RequestUpdate().
Referenced by TensorQuantify().
{
itk::TimeProbe clock;
QString status;
int nrFiles = inImages->size();
if (!nrFiles) return;
mitk::DataStorage::SetOfObjects::const_iterator itemiter( inImages->begin() );
mitk::DataStorage::SetOfObjects::const_iterator itemiterend( inImages->end() );
std::vector<mitk::DataNode::Pointer> nodes;
while ( itemiter != itemiterend ) // for all items
{
typedef float TTensorPixelType;
typedef itk::DiffusionTensor3D< TTensorPixelType > TensorPixelType;
typedef itk::Image< TensorPixelType, 3 > TensorImageType;
mitk::Image* vol =
static_cast<mitk::Image*>((*itemiter)->GetData());
TensorImageType::Pointer itkvol = TensorImageType::New();
mitk::CastToItkImage<TensorImageType>(vol, itkvol);
std::string nodename;
(*itemiter)->GetStringProperty("name", nodename);
++itemiter;
// COMPUTE FA
clock.Start();
MBI_INFO << "Computing FA ";
mitk::StatusBar::GetInstance()->DisplayText(status.sprintf(
"Computing FA for %s", nodename.c_str()).toAscii());
typedef itk::Image< TTensorPixelType, 3 > FAImageType;
typedef itk::ShiftScaleImageFilter<FAImageType, FAImageType>
ShiftScaleFilterType;
ShiftScaleFilterType::Pointer multi =
ShiftScaleFilterType::New();
multi->SetShift(0.0);
multi->SetScale(m_ScaleDAIValues);//itk::NumericTraits<RealValueType>::max()
typedef itk::TensorDerivedMeasurementsFilter<TTensorPixelType> MeasurementsType;
if(method == 0) //FA
{
/* typedef itk::TensorFractionalAnisotropyImageFilter<
TensorImageType, FAImageType > FilterType;
FilterType::Pointer anisotropyFilter = FilterType::New();
anisotropyFilter->SetInput( itkvol.GetPointer() );
anisotropyFilter->Update();
multi->SetInput(anisotropyFilter->GetOutput());
nodename = QString(nodename.c_str()).append("_FA").toStdString();*/
MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
measurementsCalculator->SetInput(itkvol.GetPointer() );
measurementsCalculator->SetMeasure(MeasurementsType::FA);
measurementsCalculator->Update();
multi->SetInput(measurementsCalculator->GetOutput());
nodename = QString(nodename.c_str()).append("_FA").toStdString();
}
else if(method == 1) //RA
{
/*typedef itk::TensorRelativeAnisotropyImageFilter<
TensorImageType, FAImageType > FilterType;
FilterType::Pointer anisotropyFilter = FilterType::New();
anisotropyFilter->SetInput( itkvol.GetPointer() );
anisotropyFilter->Update();
multi->SetInput(anisotropyFilter->GetOutput());
nodename = QString(nodename.c_str()).append("_RA").toStdString();*/
MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
measurementsCalculator->SetInput(itkvol.GetPointer() );
measurementsCalculator->SetMeasure(MeasurementsType::RA);
measurementsCalculator->Update();
multi->SetInput(measurementsCalculator->GetOutput());
nodename = QString(nodename.c_str()).append("_RA").toStdString();
}
else if(method == 2) // AD (Axial diffusivity)
{
MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
measurementsCalculator->SetInput(itkvol.GetPointer() );
measurementsCalculator->SetMeasure(MeasurementsType::AD);
measurementsCalculator->Update();
multi->SetInput(measurementsCalculator->GetOutput());
nodename = QString(nodename.c_str()).append("_AD").toStdString();
}
else if(method == 3) // RD (Radial diffusivity, (Lambda2+Lambda3)/2
{
MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
measurementsCalculator->SetInput(itkvol.GetPointer() );
measurementsCalculator->SetMeasure(MeasurementsType::RD);
measurementsCalculator->Update();
multi->SetInput(measurementsCalculator->GetOutput());
nodename = QString(nodename.c_str()).append("_RD").toStdString();
}
else if(method == 4) // 1-(Lambda2+Lambda3)/(2*Lambda1)
{
MeasurementsType::Pointer measurementsCalculator = MeasurementsType::New();
measurementsCalculator->SetInput(itkvol.GetPointer() );
measurementsCalculator->SetMeasure(MeasurementsType::CA);
measurementsCalculator->Update();
multi->SetInput(measurementsCalculator->GetOutput());
nodename = QString(nodename.c_str()).append("_CA").toStdString();
}
multi->Update();
clock.Stop();
MBI_DEBUG << "took " << clock.GetMeanTime() << "s.";
// FA TO DATATREE
mitk::Image::Pointer image = mitk::Image::New();
image->InitializeByItk( multi->GetOutput() );
image->SetVolume( multi->GetOutput()->GetBufferPointer() );
mitk::DataNode::Pointer node=mitk::DataNode::New();
node->SetData( image );
node->SetProperty( "name", mitk::StringProperty::New(nodename) );
nodes.push_back(node);
mitk::StatusBar::GetInstance()->DisplayText("Computation complete.");
}
std::vector<mitk::DataNode::Pointer>::iterator nodeIt;
for(nodeIt = nodes.begin(); nodeIt != nodes.end(); ++nodeIt)
GetDefaultDataStorage()->Add(*nodeIt);
m_MultiWidget->RequestUpdate();
}
| void QmitkDiffusionQuantificationView::TensorQuantify | ( | int | method ) | [protected, slot] |
Definition at line 277 of file QmitkDiffusionQuantificationView.cpp.
References berry::SmartPointer< TObjectType >::Cast(), m_CurrentSelection, and TensorQuantification().
Referenced by AD(), ClusterAnisotropy(), FA(), RA(), and RD().
{
if (m_CurrentSelection)
{
mitk::DataStorage::SetOfObjects::Pointer set =
mitk::DataStorage::SetOfObjects::New();
int at = 0;
for (IStructuredSelection::iterator i = m_CurrentSelection->Begin();
i != m_CurrentSelection->End();
++i)
{
if (mitk::DataNodeObject::Pointer nodeObj = i->Cast<mitk::DataNodeObject>())
{
mitk::DataNode::Pointer node = nodeObj->GetDataNode();
if(QString("TensorImage").compare(node->GetData()->GetNameOfClass())==0)
{
set->InsertElement(at++, node);
}
}
}
TensorQuantification(set, method);
}
}
friend struct DqSelListener [friend] |
Definition at line 45 of file QmitkDiffusionQuantificationView.h.
Referenced by CreateQtPartControl().
Ui::QmitkDiffusionQuantificationViewControls* QmitkDiffusionQuantificationView::m_Controls [protected] |
Definition at line 92 of file QmitkDiffusionQuantificationView.h.
Referenced by CreateConnections(), CreateQtPartControl(), GFA(), GFACheckboxClicked(), and QBIQuantification().
berry::IStructuredSelection::ConstPointer QmitkDiffusionQuantificationView::m_CurrentSelection [protected] |
Definition at line 97 of file QmitkDiffusionQuantificationView.h.
Referenced by Activated(), CreateQtPartControl(), DqSelListener::DoSelectionChanged(), QBIQuantify(), and TensorQuantify().
Definition at line 94 of file QmitkDiffusionQuantificationView.h.
Referenced by QBIQuantification(), StdMultiWidgetAvailable(), StdMultiWidgetNotAvailable(), and TensorQuantification().
const float QmitkDiffusionQuantificationView::m_ScaleDAIValues = 100.0 [static, protected] |
Definition at line 99 of file QmitkDiffusionQuantificationView.h.
Referenced by QBIQuantification(), and TensorQuantification().
Definition at line 96 of file QmitkDiffusionQuantificationView.h.
Referenced by Activated(), CreateQtPartControl(), and ~QmitkDiffusionQuantificationView().
const std::string QmitkDiffusionQuantificationView::VIEW_ID = "org.mitk.views.diffusionquantification" [static] |
Definition at line 52 of file QmitkDiffusionQuantificationView.h.
1.7.2