Public Member Functions | Static Public Attributes | Protected Slots | Protected Member Functions | Protected Attributes | Friends

QmitkPreprocessingView Class Reference

QmitkPreprocessingView. More...

#include <QmitkPreprocessingView.h>

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

List of all members.

Public Member Functions

 QmitkPreprocessingView ()
virtual ~QmitkPreprocessingView ()
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.preprocessing"
static const int nrconvkernels

Protected Slots

void AverageGradients ()
void DoAverageGradients (mitk::DataStorage::SetOfObjects::Pointer inImages)
void ExtractB0 ()
void DoExtractB0 (mitk::DataStorage::SetOfObjects::Pointer inImages)
void BrainMask ()
void DoBrainMask (mitk::DataStorage::SetOfObjects::Pointer inImages)

Protected Member Functions

void SetDefaultNodeProperties (mitk::DataNode::Pointer node, std::string name)

Protected Attributes

Ui::QmitkPreprocessingViewControlsm_Controls
QmitkStdMultiWidgetm_MultiWidget
berry::ISelectionListener::Pointer m_SelListener
berry::IStructuredSelection::ConstPointer m_CurrentSelection

Friends

struct PrpSelListener

Detailed Description

QmitkPreprocessingView.

Document your class here.

See also:
QmitkFunctionality

Definition at line 47 of file QmitkPreprocessingView.h.


Constructor & Destructor Documentation

QmitkPreprocessingView::QmitkPreprocessingView (  )

Definition at line 131 of file QmitkPreprocessingView.cpp.

QmitkPreprocessingView::~QmitkPreprocessingView (  ) [virtual]

Definition at line 138 of file QmitkPreprocessingView.cpp.

References berry::WorkbenchPart::GetSite(), and m_SelListener.

{
  this->GetSite()->GetWorkbenchWindow()->GetSelectionService()->RemovePostSelectionListener(/*"org.mitk.views.datamanager",*/ m_SelListener);
}

Member Function Documentation

void QmitkPreprocessingView::Activated (  ) [virtual]

Called when the functionality is activated.

Reimplemented from QmitkFunctionality.

Definition at line 182 of file QmitkPreprocessingView.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<PrpSelListener>()->DoSelectionChanged(sel);
}
void QmitkPreprocessingView::AverageGradients (  ) [protected, slot]

Definition at line 272 of file QmitkPreprocessingView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), DoAverageGradients(), and m_CurrentSelection.

Referenced by CreateConnections().

{

  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);
        }
      }
    }

    DoAverageGradients(set);

  }

}
void QmitkPreprocessingView::BrainMask (  ) [protected, slot]

Definition at line 325 of file QmitkPreprocessingView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), DoBrainMask(), and m_CurrentSelection.

Referenced by CreateConnections().

{

  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);
        }
      }
    }

    DoBrainMask(set);

  }

}
void QmitkPreprocessingView::CreateConnections (  ) [virtual]

Creation of the connections of main and control widget.

Definition at line 171 of file QmitkPreprocessingView.cpp.

References AverageGradients(), BrainMask(), ExtractB0(), Ui_QmitkPreprocessingViewControls::m_ButtonAverageGradients, Ui_QmitkPreprocessingViewControls::m_ButtonBrainMask, Ui_QmitkPreprocessingViewControls::m_ButtonExtractB0, and m_Controls.

Referenced by CreateQtPartControl().

{
  if ( m_Controls )
  {
    connect( (QObject*)(m_Controls->m_ButtonAverageGradients), SIGNAL(clicked()), this, SLOT(AverageGradients()) );
    connect( (QObject*)(m_Controls->m_ButtonExtractB0), SIGNAL(clicked()), this, SLOT(ExtractB0()) );
    connect( (QObject*)(m_Controls->m_ButtonBrainMask), SIGNAL(clicked()), this, SLOT(BrainMask()) );

  }
}
void QmitkPreprocessingView::CreateQtPartControl ( QWidget *  parent ) [virtual]

Implements berry::QtViewPart.

Definition at line 143 of file QmitkPreprocessingView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), CreateConnections(), berry::WorkbenchPart::GetSite(), m_Controls, m_CurrentSelection, m_SelListener, PrpSelListener, and Ui_QmitkPreprocessingViewControls::setupUi().

{
  if (!m_Controls)
  {
    // create GUI widgets
    m_Controls = new Ui::QmitkPreprocessingViewControls;
    m_Controls->setupUi(parent);
    this->CreateConnections();
  }

  m_SelListener = berry::ISelectionListener::Pointer(new PrpSelListener(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<PrpSelListener>()->DoSelectionChanged(sel);
}
void QmitkPreprocessingView::Deactivated (  ) [virtual]

Only called when IsExclusiveFunctionality() returns true.

See also:
IsExclusiveFunctionality()

Reimplemented from QmitkFunctionality.

Definition at line 192 of file QmitkPreprocessingView.cpp.

void QmitkPreprocessingView::DoAverageGradients ( mitk::DataStorage::SetOfObjects::Pointer  inImages ) [protected, slot]

Definition at line 303 of file QmitkPreprocessingView.cpp.

References mitk::DiffusionImage< TPixelType >::AverageRedundantGradients().

Referenced by AverageGradients().

{
  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
  {

    mitk::DiffusionImage<DiffusionPixelType>* vols = 
      static_cast<mitk::DiffusionImage<DiffusionPixelType>*>(
      (*itemiter)->GetData());

    vols->AverageRedundantGradients(m_Controls->m_Blur->value());

    ++itemiter;
  }
}
void QmitkPreprocessingView::DoBrainMask ( mitk::DataStorage::SetOfObjects::Pointer  inImages ) [protected, slot]

Definition at line 356 of file QmitkPreprocessingView.cpp.

References mitk::DiffusionImage< TPixelType >::GetDirections(), mitk::DiffusionImage< TPixelType >::GetVectorImage(), mitk::StringProperty::New(), mitk::DataNode::New(), and mitk::Image::New().

Referenced by BrainMask().

{
  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
  {

    mitk::DiffusionImage<DiffusionPixelType>* vols = 
      static_cast<mitk::DiffusionImage<DiffusionPixelType>*>(
      (*itemiter)->GetData());

    std::string nodename;
    (*itemiter)->GetStringProperty("name", nodename);

    // Extract image using found index
    typedef itk::B0ImageExtractionImageFilter<short, short> FilterType;
    FilterType::Pointer filter = FilterType::New();
    filter->SetInput(vols->GetVectorImage());
    filter->SetDirections(vols->GetDirections());

    typedef itk::CastImageFilter<itk::Image<short,3>, itk::Image<unsigned short,3> > CastFilterType;
    CastFilterType::Pointer castfilter = CastFilterType::New();
    castfilter->SetInput(filter->GetOutput());
    
    typedef itk::BrainMaskExtractionImageFilter<unsigned char> MaskFilterType;
    MaskFilterType::Pointer maskfilter = MaskFilterType::New();
    maskfilter->SetInput(castfilter->GetOutput());
    maskfilter->Update();

    mitk::Image::Pointer mitkImage = mitk::Image::New();
    mitkImage->InitializeByItk( maskfilter->GetOutput() );
    mitkImage->SetVolume( maskfilter->GetOutput()->GetBufferPointer() );
    mitk::DataNode::Pointer node=mitk::DataNode::New();
    node->SetData( mitkImage );
    node->SetProperty( "name", mitk::StringProperty::New(nodename + "_Mask"));

    GetDefaultDataStorage()->Add(node);

    ++itemiter;
  }
}
void QmitkPreprocessingView::DoExtractB0 ( mitk::DataStorage::SetOfObjects::Pointer  inImages ) [protected, slot]

Definition at line 228 of file QmitkPreprocessingView.cpp.

References mitk::StringProperty::New(), mitk::DataNode::New(), and mitk::Image::New().

Referenced by ExtractB0().

{
  typedef mitk::DiffusionImage<DiffusionPixelType>              DiffusionImageType;
  typedef DiffusionImageType::GradientDirectionContainerType    GradientContainerType;

  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
  {

    DiffusionImageType* vols = 
      static_cast<DiffusionImageType*>(
      (*itemiter)->GetData());

    std::string nodename;
    (*itemiter)->GetStringProperty("name", nodename);

    // Extract image using found index
    typedef itk::B0ImageExtractionImageFilter<short, short> FilterType;
    FilterType::Pointer filter = FilterType::New();
    filter->SetInput(vols->GetVectorImage());
    filter->SetDirections(vols->GetDirections());
    filter->Update();

    mitk::Image::Pointer mitkImage = mitk::Image::New();
    mitkImage->InitializeByItk( filter->GetOutput() );
    mitkImage->SetVolume( filter->GetOutput()->GetBufferPointer() );
    mitk::DataNode::Pointer node=mitk::DataNode::New();
    node->SetData( mitkImage );
    node->SetProperty( "name", mitk::StringProperty::New(nodename + "_B0"));

    GetDefaultDataStorage()->Add(node);

    ++itemiter;
  }


}
void QmitkPreprocessingView::ExtractB0 (  ) [protected, slot]

Definition at line 198 of file QmitkPreprocessingView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), DoExtractB0(), and m_CurrentSelection.

Referenced by CreateConnections().

{

  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);
        }
      }
    }

    DoExtractB0(set);

  }
}
void QmitkPreprocessingView::SetDefaultNodeProperties ( mitk::DataNode::Pointer  node,
std::string  name 
) [protected]
void QmitkPreprocessingView::StdMultiWidgetAvailable ( QmitkStdMultiWidget stdMultiWidget ) [virtual]

Called when a StdMultiWidget is available. Should not be used anymore, see GetActiveStdMultiWidget()

See also:
GetActiveStdMultiWidget()

Reimplemented from QmitkFunctionality.

Definition at line 161 of file QmitkPreprocessingView.cpp.

References m_MultiWidget.

{
  m_MultiWidget = &stdMultiWidget;
}
void QmitkPreprocessingView::StdMultiWidgetNotAvailable (  ) [virtual]

Called when no StdMultiWidget is available anymore. Should not be used anymore, see GetActiveStdMultiWidget()

See also:
GetActiveStdMultiWidget()

Reimplemented from QmitkFunctionality.

Definition at line 166 of file QmitkPreprocessingView.cpp.

References m_MultiWidget.

{
  m_MultiWidget = NULL;
}

Friends And Related Function Documentation

friend struct PrpSelListener [friend]

Definition at line 50 of file QmitkPreprocessingView.h.

Referenced by CreateQtPartControl().


Member Data Documentation

Definition at line 91 of file QmitkPreprocessingView.h.

Referenced by CreateConnections(), and CreateQtPartControl().

Definition at line 93 of file QmitkPreprocessingView.h.

Referenced by StdMultiWidgetAvailable(), and StdMultiWidgetNotAvailable().

Definition at line 75 of file QmitkPreprocessingView.h.

const std::string QmitkPreprocessingView::VIEW_ID = "org.mitk.views.preprocessing" [static]

Definition at line 57 of file QmitkPreprocessingView.h.


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