QmitkQBallReconstructionView. More...
#include <QmitkQBallReconstructionView.h>


Public Member Functions | |
| QmitkQBallReconstructionView () | |
| virtual | ~QmitkQBallReconstructionView () |
| 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.qballreconstruction" |
| static const int | nrconvkernels = 252 |
Protected Slots | |
| void | ReconstructStandard () |
| void | AdvancedCheckboxClicked () |
| void | MethodChoosen (int method) |
| void | Reconstruct (int method, int normalization) |
| void | NumericalQBallReconstruction (mitk::DataStorage::SetOfObjects::Pointer inImages, int normalization) |
| void | AnalyticalQBallReconstruction (mitk::DataStorage::SetOfObjects::Pointer inImages, int normalization) |
Protected Member Functions | |
| template<int L> | |
| void | TemplatedAnalyticalQBallReconstruction (mitk::DiffusionImage< DiffusionPixelType > *vols, float lambda, std::string nodename, std::vector< mitk::DataNode::Pointer > *nodes, int normalization) |
| void | SetDefaultNodeProperties (mitk::DataNode::Pointer node, std::string name) |
Protected Attributes | |
| Ui::QmitkQBallReconstructionViewControls * | m_Controls |
| QmitkStdMultiWidget * | m_MultiWidget |
| berry::ISelectionListener::Pointer | m_SelListener |
| berry::IStructuredSelection::ConstPointer | m_CurrentSelection |
Friends | |
| struct | QbrSelListener |
Document your class here.
Definition at line 47 of file QmitkQBallReconstructionView.h.
| QmitkQBallReconstructionView::QmitkQBallReconstructionView | ( | ) |
Definition at line 130 of file QmitkQBallReconstructionView.cpp.
: QmitkFunctionality(), m_Controls(NULL), m_MultiWidget(NULL) { }
| QmitkQBallReconstructionView::~QmitkQBallReconstructionView | ( | ) | [virtual] |
Definition at line 174 of file QmitkQBallReconstructionView.cpp.
References berry::WorkbenchPart::GetSite(), and m_SelListener.
{
this->GetSite()->GetWorkbenchWindow()->GetSelectionService()->RemovePostSelectionListener(/*"org.mitk.views.datamanager",*/ m_SelListener);
}
| void QmitkQBallReconstructionView::Activated | ( | ) | [virtual] |
Called when the functionality is activated.
Reimplemented from QmitkFunctionality.
Definition at line 235 of file QmitkQBallReconstructionView.cpp.
References berry::SmartPointer< TObjectType >::Cast(), berry::WorkbenchPart::GetSite(), m_CurrentSelection, and m_SelListener.
{
QmitkFunctionality::Activated();
berry::ISelection::ConstPointer sel(
this->GetSite()->GetWorkbenchWindow()->GetSelectionService()->GetSelection("org.mitk.views.datamanager"));
m_CurrentSelection = sel.Cast<const IStructuredSelection>();
m_SelListener.Cast<QbrSelListener>()->DoSelectionChanged(sel);
}
| void QmitkQBallReconstructionView::AdvancedCheckboxClicked | ( | ) | [protected, slot] |
Definition at line 330 of file QmitkQBallReconstructionView.cpp.
References Ui_QmitkQBallReconstructionViewControls::frame_2, Ui_QmitkQBallReconstructionViewControls::label_2, m_Controls, Ui_QmitkQBallReconstructionViewControls::m_OutputB0Image, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionLambdaLineEdit, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionLambdaTextLabel_2, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionMaxLLevelComboBox, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionMaxLLevelTextLabel_2, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionNumberThreadsLabel_2, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionNumberThreadsSpinbox, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionThreasholdEdit, and Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionThresholdLabel_2.
Referenced by CreateConnections(), and CreateQtPartControl().
{
bool check = m_Controls->
m_AdvancedCheckbox->isChecked();
m_Controls->m_QBallReconstructionMaxLLevelTextLabel_2->setVisible(check);
m_Controls->m_QBallReconstructionMaxLLevelComboBox->setVisible(check);
m_Controls->m_QBallReconstructionLambdaTextLabel_2->setVisible(check);
m_Controls->m_QBallReconstructionLambdaLineEdit->setVisible(check);
m_Controls->m_QBallReconstructionThresholdLabel_2->setVisible(check);
m_Controls->m_QBallReconstructionThreasholdEdit->setVisible(check);
m_Controls->m_OutputB0Image->setVisible(check);
m_Controls->m_QBallReconstructionNumberThreadsLabel_2->setVisible(check);
m_Controls->m_QBallReconstructionNumberThreadsSpinbox->setVisible(check);
m_Controls->label_2->setVisible(check);
//m_Controls->textLabel1_2->setVisible(check);
//m_Controls->m_QBallReconstructionLambdaStepLineEdit->setVisible(check);
//m_Controls->textLabel1_3->setVisible(check);
m_Controls->frame_2->setVisible(check);
}
| void QmitkQBallReconstructionView::AnalyticalQBallReconstruction | ( | mitk::DataStorage::SetOfObjects::Pointer | inImages, |
| int | normalization | ||
| ) | [protected, slot] |
Definition at line 511 of file QmitkQBallReconstructionView.cpp.
References QmitkFunctionality::GetDefaultDataStorage(), mitk::StatusBar::GetInstance(), mitk::ProgressBar::GetInstance(), m_Controls, m_MultiWidget, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionLambdaLineEdit, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionMaxLLevelComboBox, MBI_DEBUG, MBI_INFO, and QmitkStdMultiWidget::RequestUpdate().
Referenced by Reconstruct().
{
try
{
itk::TimeProbe clock;
int nrFiles = inImages->size();
if (!nrFiles) return;
std::vector<float> lambdas;
float minLambda = m_Controls->m_QBallReconstructionLambdaLineEdit->text().toFloat();
lambdas.push_back(minLambda);
int nLambdas = lambdas.size();
QString status;
mitk::ProgressBar::GetInstance()->AddStepsToDo(nrFiles*nLambdas);
mitk::DataStorage::SetOfObjects::const_iterator itemiter( inImages->begin() );
mitk::DataStorage::SetOfObjects::const_iterator itemiterend( inImages->end() );
std::vector<mitk::DataNode::Pointer>* nodes
= new std::vector<mitk::DataNode::Pointer>();
while ( itemiter != itemiterend ) // for all items
{
mitk::DiffusionImage<DiffusionPixelType>* vols =
static_cast<mitk::DiffusionImage<DiffusionPixelType>*>(
(*itemiter)->GetData());
std::string nodename;
(*itemiter)->GetStringProperty("name",nodename);
itemiter++;
// QBALL RECONSTRUCTION
clock.Start();
MBI_INFO << "QBall reconstruction ";
mitk::StatusBar::GetInstance()->DisplayText(status.sprintf(
"QBall reconstruction for %s", nodename.c_str()).toAscii());
for(int i=0; i<nLambdas; i++)
{
float currentLambda = lambdas[i];
switch(m_Controls->m_QBallReconstructionMaxLLevelComboBox->currentIndex())
{
case 0:
{
TemplatedAnalyticalQBallReconstruction<2>(vols, currentLambda, nodename, nodes, normalization);
break;
}
case 1:
{
TemplatedAnalyticalQBallReconstruction<4>(vols, currentLambda, nodename, nodes, normalization);
break;
}
case 2:
{
TemplatedAnalyticalQBallReconstruction<6>(vols, currentLambda, nodename, nodes, normalization);
break;
}
case 3:
{
TemplatedAnalyticalQBallReconstruction<8>(vols, currentLambda, nodename, nodes, normalization);
break;
}
}
clock.Stop();
MBI_DEBUG << "took " << clock.GetMeanTime() << "s." ;
mitk::ProgressBar::GetInstance()->Progress();
}
}
std::vector<mitk::DataNode::Pointer>::iterator nodeIt;
for(nodeIt = nodes->begin(); nodeIt != nodes->end(); ++nodeIt)
GetDefaultDataStorage()->Add(*nodeIt);
m_MultiWidget->RequestUpdate();
mitk::StatusBar::GetInstance()->DisplayText(status.sprintf("Finished Processing %d Files", nrFiles).toAscii());
}
catch (itk::ExceptionObject &ex)
{
MBI_INFO << ex ;
return ;
}
}
| void QmitkQBallReconstructionView::CreateConnections | ( | ) | [virtual] |
Creation of the connections of main and control widget.
Definition at line 224 of file QmitkQBallReconstructionView.cpp.
References AdvancedCheckboxClicked(), Ui_QmitkQBallReconstructionViewControls::m_AdvancedCheckbox, Ui_QmitkQBallReconstructionViewControls::m_ButtonStandard, m_Controls, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionMethodComboBox, MethodChoosen(), and ReconstructStandard().
Referenced by CreateQtPartControl().
{
if ( m_Controls )
{
connect( (QObject*)(m_Controls->m_ButtonStandard), SIGNAL(clicked()), this, SLOT(ReconstructStandard()) );
connect( (QObject*)(m_Controls->m_AdvancedCheckbox), SIGNAL(clicked()), this, SLOT(AdvancedCheckboxClicked()) );
connect( (QObject*)(m_Controls->m_QBallReconstructionMethodComboBox), SIGNAL(currentIndexChanged(int)), this, SLOT(MethodChoosen(int)) );
}
}
| void QmitkQBallReconstructionView::CreateQtPartControl | ( | QWidget * | parent ) | [virtual] |
Implements berry::QtViewPart.
Definition at line 179 of file QmitkQBallReconstructionView.cpp.
References AdvancedCheckboxClicked(), berry::SmartPointer< TObjectType >::Cast(), CreateConnections(), berry::WorkbenchPart::GetSite(), m_Controls, m_CurrentSelection, Ui_QmitkQBallReconstructionViewControls::m_Description, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionMaxLLevelComboBox, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionMethodComboBox, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionNumberThreadsSpinbox, m_SelListener, QbrSelListener, and Ui_QmitkQBallReconstructionViewControls::setupUi().
{
if (!m_Controls)
{
// create GUI widgets
m_Controls = new Ui::QmitkQBallReconstructionViewControls;
m_Controls->setupUi(parent);
this->CreateConnections();
QStringList items;
items << "2" << "4" << "6" << "8";
m_Controls->m_QBallReconstructionMaxLLevelComboBox->addItems(items);
m_Controls->m_QBallReconstructionMaxLLevelComboBox->setCurrentIndex(1);
m_Controls->m_Description->setText("Spherical harmonics recon. (Desoteaux2007)");
m_Controls->m_QBallReconstructionNumberThreadsSpinbox->setValue(8);
#ifndef DIFFUSION_IMAGING_EXTENDED
m_Controls->m_QBallReconstructionMethodComboBox->removeItem(3);
#endif
AdvancedCheckboxClicked();
// define data type for combobox
//m_Controls->m_ImageSelector->SetDataStorage( this->GetDefaultDataStorage() );
//m_Controls->m_ImageSelector->SetPredicate( mitk::NodePredicateDataType::New("DiffusionImage") );
}
m_SelListener = berry::ISelectionListener::Pointer(new QbrSelListener(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<QbrSelListener>()->DoSelectionChanged(sel);
}
| void QmitkQBallReconstructionView::Deactivated | ( | ) | [virtual] |
Only called when IsExclusiveFunctionality() returns true.
Reimplemented from QmitkFunctionality.
Definition at line 245 of file QmitkQBallReconstructionView.cpp.
| void QmitkQBallReconstructionView::MethodChoosen | ( | int | method ) | [protected, slot] |
Definition at line 303 of file QmitkQBallReconstructionView.cpp.
References m_Controls, and Ui_QmitkQBallReconstructionViewControls::m_Description.
Referenced by CreateConnections().
{
switch(method)
{
case 0:
m_Controls->m_Description->setText("Numerical recon. (Tuch2004)");
break;
case 1:
m_Controls->m_Description->setText("Spherical harmonics recon. (Desoteaux2007)");
break;
case 2:
m_Controls->m_Description->setText("SH recon. with solid angle consideration (Aganj2009)");
break;
case 3:
m_Controls->m_Description->setText("SH solid angle with non-neg. constraint (Goh2009)");
break;
case 4:
m_Controls->m_Description->setText("SH recon. of the plain ADC-profiles");
break;
case 5:
m_Controls->m_Description->setText("SH recon. of the raw diffusion signal");
break;
}
}
| void QmitkQBallReconstructionView::NumericalQBallReconstruction | ( | mitk::DataStorage::SetOfObjects::Pointer | inImages, |
| int | normalization | ||
| ) | [protected, slot] |
Definition at line 391 of file QmitkQBallReconstructionView.cpp.
References mitk::DiffusionImage< TPixelType >::GetB_Value(), mitk::DiffusionImage< TPixelType >::GetDirections(), mitk::StatusBar::GetInstance(), mitk::ProgressBar::GetInstance(), mitk::DiffusionImage< TPixelType >::GetVectorImage(), MBI_DEBUG, MBI_INFO, mitk::StringProperty::New(), mitk::Image::New(), mitk::DataNode::New(), mitk::QBallImage::New(), and QBALL_ODFSIZE.
Referenced by Reconstruct().
{
try
{
itk::TimeProbe clock;
int nrFiles = inImages->size();
if (!nrFiles) return;
QString status;
mitk::ProgressBar::GetInstance()->AddStepsToDo(nrFiles);
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
{
mitk::DiffusionImage<DiffusionPixelType>* vols =
static_cast<mitk::DiffusionImage<DiffusionPixelType>*>(
(*itemiter)->GetData());
std::string nodename;
(*itemiter)->GetStringProperty("name", nodename);
++itemiter;
// QBALL RECONSTRUCTION
clock.Start();
MBI_INFO << "QBall reconstruction ";
mitk::StatusBar::GetInstance()->DisplayText(status.sprintf(
"QBall reconstruction for %s", nodename.c_str()).toAscii());
typedef itk::DiffusionQballReconstructionImageFilter
<DiffusionPixelType, DiffusionPixelType, TTensorPixelType, QBALL_ODFSIZE>
QballReconstructionImageFilterType;
QballReconstructionImageFilterType::Pointer filter =
QballReconstructionImageFilterType::New();
filter->SetGradientImage( vols->GetDirections(), vols->GetVectorImage() );
filter->SetNumberOfThreads( m_Controls->m_QBallReconstructionNumberThreadsSpinbox->value() );
filter->SetBValue(vols->GetB_Value());
filter->SetThreshold( m_Controls->m_QBallReconstructionThreasholdEdit->text().toFloat() );
switch(normalization)
{
case 0:
{
filter->SetNormalizationMethod(QballReconstructionImageFilterType::QBR_STANDARD);
break;
}
case 1:
{
filter->SetNormalizationMethod(QballReconstructionImageFilterType::QBR_B_ZERO_B_VALUE);
break;
}
case 2:
{
filter->SetNormalizationMethod(QballReconstructionImageFilterType::QBR_B_ZERO);
break;
}
case 3:
{
filter->SetNormalizationMethod(QballReconstructionImageFilterType::QBR_NONE);
break;
}
default:
{
filter->SetNormalizationMethod(QballReconstructionImageFilterType::QBR_STANDARD);
}
}
filter->Update();
clock.Stop();
MBI_DEBUG << "took " << clock.GetMeanTime() << "s." ;
// ODFs TO DATATREE
mitk::QBallImage::Pointer image = mitk::QBallImage::New();
image->InitializeByItk( filter->GetOutput() );
//image->SetImportVolume( filter->GetOutput()->GetBufferPointer(), 0, 0, mitk::Image::ImportMemoryManagementType::ManageMemory );
image->SetVolume( filter->GetOutput()->GetBufferPointer() );
mitk::DataNode::Pointer node=mitk::DataNode::New();
node->SetData( image );
QString newname;
newname = newname.append(nodename.c_str());
newname = newname.append("_QN%1").arg(normalization);
SetDefaultNodeProperties(node, newname.toStdString());
nodes.push_back(node);
// B-Zero TO DATATREE
if(m_Controls->m_OutputB0Image->isChecked())
{
mitk::Image::Pointer image4 = mitk::Image::New();
image4->InitializeByItk( filter->GetBZeroImage().GetPointer() );
image4->SetVolume( filter->GetBZeroImage()->GetBufferPointer() );
mitk::DataNode::Pointer node4=mitk::DataNode::New();
node4->SetData( image4 );
node4->SetProperty( "name", mitk::StringProperty::New(
QString(nodename.c_str()).append("_b0").toStdString()) );
nodes.push_back(node4);
}
mitk::ProgressBar::GetInstance()->Progress();
}
std::vector<mitk::DataNode::Pointer>::iterator nodeIt;
for(nodeIt = nodes.begin(); nodeIt != nodes.end(); ++nodeIt)
GetDefaultDataStorage()->Add(*nodeIt);
mitk::StatusBar::GetInstance()->DisplayText(status.sprintf("Finished Processing %d Files", nrFiles).toAscii());
m_MultiWidget->RequestUpdate();
}
catch (itk::ExceptionObject &ex)
{
MBI_INFO << ex ;
return ;
}
}
| void QmitkQBallReconstructionView::Reconstruct | ( | int | method, |
| int | normalization | ||
| ) | [protected, slot] |
Definition at line 354 of file QmitkQBallReconstructionView.cpp.
References AnalyticalQBallReconstruction(), berry::SmartPointer< TObjectType >::Cast(), m_CurrentSelection, and NumericalQBallReconstruction().
Referenced by ReconstructStandard().
{
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("DiffusionImage").compare(node->GetData()->GetNameOfClass())==0)
{
set->InsertElement(at++, node);
}
}
}
if(method == 0)
{
NumericalQBallReconstruction(set, normalization);
}
if(method == 1)
{
AnalyticalQBallReconstruction(set, normalization);
}
}
}
| void QmitkQBallReconstructionView::ReconstructStandard | ( | ) | [protected, slot] |
Definition at line 250 of file QmitkQBallReconstructionView.cpp.
References m_Controls, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionMethodComboBox, and Reconstruct().
Referenced by CreateConnections().
{
int index = m_Controls->m_QBallReconstructionMethodComboBox->currentIndex();
#ifndef DIFFUSION_IMAGING_EXTENDED
if(index>=3)
{
index = index + 1;
}
#endif
switch(index)
{
case 0:
{
// Numerical
Reconstruct(0,0);
break;
}
case 1:
{
// Standard
Reconstruct(1,0);
break;
}
case 2:
{
// Solid Angle
Reconstruct(1,6);
break;
}
case 3:
{
// Constrained Solid Angle
Reconstruct(1,7);
break;
}
case 4:
{
// ADC
Reconstruct(1,4);
break;
}
case 5:
{
// Raw Signal
Reconstruct(1,5);
break;
}
}
}
| void QmitkQBallReconstructionView::SetDefaultNodeProperties | ( | mitk::DataNode::Pointer | node, |
| std::string | name | ||
| ) | [protected] |
Definition at line 698 of file QmitkQBallReconstructionView.cpp.
References mitk::StringProperty::New(), mitk::BoolProperty::New(), mitk::OdfScaleByProperty::New(), mitk::OdfNormalizationMethodProperty::New(), mitk::FloatProperty::New(), and mitk::IntProperty::New().
Referenced by TemplatedAnalyticalQBallReconstruction().
{
node->SetProperty( "ShowMaxNumber", mitk::IntProperty::New( 500 ) );
node->SetProperty( "Scaling", mitk::FloatProperty::New( 1.0 ) );
node->SetProperty( "Normalization", mitk::OdfNormalizationMethodProperty::New());
node->SetProperty( "ScaleBy", mitk::OdfScaleByProperty::New());
node->SetProperty( "IndexParam1", mitk::FloatProperty::New(2));
node->SetProperty( "IndexParam2", mitk::FloatProperty::New(1));
node->SetProperty( "visible", mitk::BoolProperty::New( true ) );
node->SetProperty( "VisibleOdfs", mitk::BoolProperty::New( false ) );
node->SetProperty ("layer", mitk::IntProperty::New(100));
node->SetProperty( "DoRefresh", mitk::BoolProperty::New( true ) );
//node->SetProperty( "opacity", mitk::FloatProperty::New(1.0f) );
node->SetProperty( "name", mitk::StringProperty::New(name) );
}
| void QmitkQBallReconstructionView::StdMultiWidgetAvailable | ( | QmitkStdMultiWidget & | stdMultiWidget ) | [virtual] |
Called when a StdMultiWidget is available. Should not be used anymore, see GetActiveStdMultiWidget()
Reimplemented from QmitkFunctionality.
Definition at line 214 of file QmitkQBallReconstructionView.cpp.
References m_MultiWidget.
{
m_MultiWidget = &stdMultiWidget;
}
| void QmitkQBallReconstructionView::StdMultiWidgetNotAvailable | ( | ) | [virtual] |
Called when no StdMultiWidget is available anymore. Should not be used anymore, see GetActiveStdMultiWidget()
Reimplemented from QmitkFunctionality.
Definition at line 219 of file QmitkQBallReconstructionView.cpp.
References m_MultiWidget.
{
m_MultiWidget = NULL;
}
| void QmitkQBallReconstructionView::TemplatedAnalyticalQBallReconstruction | ( | mitk::DiffusionImage< DiffusionPixelType > * | vols, |
| float | lambda, | ||
| std::string | nodename, | ||
| std::vector< mitk::DataNode::Pointer > * | nodes, | ||
| int | normalization | ||
| ) | [protected] |
Definition at line 606 of file QmitkQBallReconstructionView.cpp.
References mitk::DiffusionImage< TPixelType >::GetB_Value(), mitk::DiffusionImage< TPixelType >::GetDirections(), mitk::DiffusionImage< TPixelType >::GetVectorImage(), m_Controls, Ui_QmitkQBallReconstructionViewControls::m_OutputB0Image, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionNumberThreadsSpinbox, Ui_QmitkQBallReconstructionViewControls::m_QBallReconstructionThreasholdEdit, mitk::StringProperty::New(), mitk::Image::New(), mitk::DataNode::New(), mitk::QBallImage::New(), QBALL_ODFSIZE, and SetDefaultNodeProperties().
{
typedef itk::AnalyticalDiffusionQballReconstructionImageFilter
<DiffusionPixelType,DiffusionPixelType,TTensorPixelType,L,QBALL_ODFSIZE> FilterType;
typename FilterType::Pointer filter = FilterType::New();
filter->SetGradientImage( vols->GetDirections(), vols->GetVectorImage() );
filter->SetNumberOfThreads( m_Controls->m_QBallReconstructionNumberThreadsSpinbox->value() );
filter->SetBValue(vols->GetB_Value());
filter->SetThreshold( m_Controls->m_QBallReconstructionThreasholdEdit->text().toFloat() );
filter->SetLambda(lambda);
switch(normalization)
{
case 0:
{
filter->SetNormalizationMethod(FilterType::QBAR_STANDARD);
break;
}
case 1:
{
filter->SetNormalizationMethod(FilterType::QBAR_B_ZERO_B_VALUE);
break;
}
case 2:
{
filter->SetNormalizationMethod(FilterType::QBAR_B_ZERO);
break;
}
case 3:
{
filter->SetNormalizationMethod(FilterType::QBAR_NONE);
break;
}
case 4:
{
filter->SetNormalizationMethod(FilterType::QBAR_ADC_ONLY);
break;
}
case 5:
{
filter->SetNormalizationMethod(FilterType::QBAR_RAW_SIGNAL);
break;
}
case 6:
{
filter->SetNormalizationMethod(FilterType::QBAR_SOLID_ANGLE);
break;
}
case 7:
{
filter->SetNormalizationMethod(FilterType::QBAR_NONNEG_SOLID_ANGLE);
break;
}
default:
{
filter->SetNormalizationMethod(FilterType::QBAR_STANDARD);
}
}
filter->Update();
// ODFs TO DATATREE
mitk::QBallImage::Pointer image = mitk::QBallImage::New();
image->InitializeByItk( filter->GetOutput() );
image->SetVolume( filter->GetOutput()->GetBufferPointer() );
mitk::DataNode::Pointer node=mitk::DataNode::New();
node->SetData( image );
QString newname;
newname = newname.append(nodename.c_str());
newname = newname.append("_QA%1").arg(normalization);
SetDefaultNodeProperties(node, newname.toStdString());
nodes->push_back(node);
// B-Zero TO DATATREE
if(m_Controls->m_OutputB0Image->isChecked())
{
mitk::Image::Pointer image4 = mitk::Image::New();
image4->InitializeByItk( filter->GetBZeroImage().GetPointer() );
image4->SetVolume( filter->GetBZeroImage()->GetBufferPointer() );
mitk::DataNode::Pointer node4=mitk::DataNode::New();
node4->SetData( image4 );
node4->SetProperty( "name", mitk::StringProperty::New(
QString(nodename.c_str()).append("_b0").toStdString()) );
nodes->push_back(node4);
}
}
friend struct QbrSelListener [friend] |
Definition at line 50 of file QmitkQBallReconstructionView.h.
Referenced by CreateQtPartControl().
Definition at line 99 of file QmitkQBallReconstructionView.h.
Referenced by AdvancedCheckboxClicked(), AnalyticalQBallReconstruction(), CreateConnections(), CreateQtPartControl(), MethodChoosen(), ReconstructStandard(), and TemplatedAnalyticalQBallReconstruction().
berry::IStructuredSelection::ConstPointer QmitkQBallReconstructionView::m_CurrentSelection [protected] |
Definition at line 110 of file QmitkQBallReconstructionView.h.
Referenced by Activated(), CreateQtPartControl(), QbrSelListener::DoSelectionChanged(), and Reconstruct().
Definition at line 101 of file QmitkQBallReconstructionView.h.
Referenced by AnalyticalQBallReconstruction(), StdMultiWidgetAvailable(), and StdMultiWidgetNotAvailable().
Definition at line 109 of file QmitkQBallReconstructionView.h.
Referenced by Activated(), CreateQtPartControl(), and ~QmitkQBallReconstructionView().
const int QmitkQBallReconstructionView::nrconvkernels = 252 [static] |
Definition at line 75 of file QmitkQBallReconstructionView.h.
const std::string QmitkQBallReconstructionView::VIEW_ID = "org.mitk.views.qballreconstruction" [static] |
Definition at line 57 of file QmitkQBallReconstructionView.h.
1.7.2