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

QmitkColourImageProcessingView Class Reference

#include <QmitkColourImageProcessingView.h>

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

List of all members.

Public Member Functions

 QmitkColourImageProcessingView ()
virtual ~QmitkColourImageProcessingView ()
virtual void CreateQtPartControl (QWidget *parent)
virtual void SelectionChanged (berry::IWorkbenchPart::Pointer part, berry::ISelection::ConstPointer selection)

Static Public Attributes

static const std::string VIEW_ID = "org.mitk.views.colourimageprocessing"

Protected Slots

void OnConvertToRGBAImage ()
void OnConvertImageMaskColorToRGBAImage ()
void OnCombineRGBA ()
void OnChangeColor ()

Protected Attributes

Ui::QmitkColourImageProcessingViewControlsm_Controls
QmitkStdMultiWidgetm_MultiWidget
berry::ISelectionListener::Pointer m_SelectionListener

Detailed Description

Definition at line 35 of file QmitkColourImageProcessingView.h.


Constructor & Destructor Documentation

QmitkColourImageProcessingView::QmitkColourImageProcessingView (  )

Definition at line 43 of file QmitkColourImageProcessingView.cpp.

References m_Controls.

: QmitkFunctionality(),
  m_MultiWidget(NULL)
{
  m_Controls=NULL;
  
  m_Color[0]= 255;
  m_Color[1]= 0;
  m_Color[2]= 0;
}
QmitkColourImageProcessingView::~QmitkColourImageProcessingView (  ) [virtual]

Member Function Documentation

void QmitkColourImageProcessingView::CreateQtPartControl ( QWidget *  parent ) [virtual]

Implements berry::QtViewPart.

Definition at line 61 of file QmitkColourImageProcessingView.cpp.

References berry::ISelectionService::AddSelectionListener(), berry::WorkbenchPart::GetSite(), Ui_QmitkColourImageProcessingViewControls::m_ColorButton, Ui_QmitkColourImageProcessingViewControls::m_CombineRGBAButton, m_Controls, Ui_QmitkColourImageProcessingViewControls::m_ConvertImageMaskColorToRGBA, Ui_QmitkColourImageProcessingViewControls::m_ConvertImageMaskToRGBA, Ui_QmitkColourImageProcessingViewControls::m_ConvertImageToRGBA, Ui_QmitkColourImageProcessingViewControls::m_ImageSelectedLabel, Ui_QmitkColourImageProcessingViewControls::m_NoImageSelectedLabel, m_SelectionListener, OnChangeColor(), OnCombineRGBA(), OnConvertImageMaskColorToRGBAImage(), OnConvertToRGBAImage(), SelectionChanged(), and Ui_QmitkColourImageProcessingViewControls::setupUi().

{
  if (!m_Controls)
  {
    m_Controls = new Ui::QmitkColourImageProcessingViewControls;
    m_Controls->setupUi(parent);
    
    connect( m_Controls->m_ConvertImageToRGBA, SIGNAL( clicked(bool) ),this, SLOT( OnConvertToRGBAImage() ));
    connect( m_Controls->m_ConvertImageMaskToRGBA, SIGNAL( clicked(bool) ),this, SLOT( OnConvertToRGBAImage() ));
    connect( m_Controls->m_ConvertImageMaskColorToRGBA, SIGNAL( clicked(bool) ),this, SLOT( OnConvertImageMaskColorToRGBAImage() ));
    connect( m_Controls->m_ColorButton, SIGNAL( clicked(bool) ),this, SLOT( OnChangeColor() ));
    connect( m_Controls->m_CombineRGBAButton, SIGNAL( clicked(bool) ),this, SLOT( OnCombineRGBA() ));
    
    m_Controls->m_ImageSelectedLabel->hide();
    m_Controls->m_NoImageSelectedLabel->show();
    
    
    
  }
  
   m_SelectionListener = berry::ISelectionListener::Pointer(new berry::SelectionChangedAdapter<QmitkColourImageProcessingView>
    (this, &QmitkColourImageProcessingView::SelectionChanged));
  berry::ISelectionService* s = GetSite()->GetWorkbenchWindow()->GetSelectionService();
  if(s)
    s->AddSelectionListener(m_SelectionListener);

}
void QmitkColourImageProcessingView::OnChangeColor (  ) [protected, slot]

Definition at line 245 of file QmitkColourImageProcessingView.cpp.

References Ui_QmitkColourImageProcessingViewControls::m_ColorButton, and m_Controls.

Referenced by CreateQtPartControl().

{
  QColor color = QColorDialog::getColor();
  if (color.spec() == 0)
  {
    color.setRed(255);
    color.setGreen(0);
    color.setBlue(0);
  }

  m_Color[0]= color.red();
  m_Color[1]= color.green();
  m_Color[2]= color.blue();

  m_Controls->m_ColorButton->setStyleSheet(QString("background-color:rgb(%1,%2, %3)").arg(color.red()).arg(color.green()).arg(color.blue()));
}
void QmitkColourImageProcessingView::OnCombineRGBA (  ) [protected, slot]

Definition at line 263 of file QmitkColourImageProcessingView.cpp.

References mitk::mitkColourImageProcessor::combineRGBAImage(), QmitkFunctionality::GetDefaultDataStorage(), mitk::WeakPointer< TObjectType >::IsNull(), MITK_INFO, and mitk::DataNode::New().

Referenced by CreateQtPartControl().

{
 if(m_SelectedNode.IsNull())
    return;
    
  if(m_SelectedNode2.IsNull())
    return;
   
    
  mitk::mitkColourImageProcessor CImageProcessor;
  
  mitk::Image::Pointer RGBAImageResult;
  
   RGBAImageResult = CImageProcessor.combineRGBAImage(dynamic_cast<mitk::Image*>(m_SelectedNode->GetData()),dynamic_cast<mitk::Image*>(m_SelectedNode2->GetData()));
  MITK_INFO <<"RGBAImage Result";
  mitk::DataNode::Pointer dtn = mitk::DataNode::New();
  
  dtn->SetData( RGBAImageResult );
  
  this->GetDefaultDataStorage()->Add( dtn ); // add as a child, because the segmentation "derives" from the original

}
void QmitkColourImageProcessingView::OnConvertImageMaskColorToRGBAImage (  ) [protected, slot]

Definition at line 200 of file QmitkColourImageProcessingView.cpp.

References mitk::mitkColourImageProcessor::convertToRGBAImage(), mitk::mitkColourImageProcessor::convertWithBinaryAndColorToRGBAImage(), QmitkFunctionality::GetDefaultDataStorage(), mitk::TransferFunctionProperty::GetValue(), mitk::WeakPointer< TObjectType >::IsNotNull(), mitk::WeakPointer< TObjectType >::IsNull(), and mitk::DataNode::New().

Referenced by CreateQtPartControl().

{
   if(m_SelectedNode.IsNull())
    return;
    
    
  mitk::TransferFunctionProperty::Pointer transferFunctionProp = dynamic_cast<mitk::TransferFunctionProperty*>(m_SelectedNode->GetProperty("TransferFunction"));

  if(transferFunctionProp.IsNull())
    return;
    
  mitk::TransferFunction::Pointer tf = transferFunctionProp->GetValue();
  
  if(tf.IsNull())
    return;
    
  mitk::mitkColourImageProcessor CImageProcessor;
  
  mitk::Image::Pointer RGBAImageResult;
  
  if(m_SelectedNode2.IsNotNull())
  {
    RGBAImageResult = CImageProcessor.convertWithBinaryAndColorToRGBAImage(dynamic_cast<mitk::Image*>(m_SelectedNode->GetData()),dynamic_cast<mitk::Image*>(m_SelectedNode2->GetData()),tf, m_Color);
  }
  else
  {
    RGBAImageResult = CImageProcessor.convertToRGBAImage(dynamic_cast<mitk::Image*>(m_SelectedNode->GetData()),tf);
  }
  
  if (!RGBAImageResult)
  {
    QMessageBox::warning(NULL, "Warning", QString("Unsupported pixeltype"));
    return;
  }

  mitk::DataNode::Pointer dtn = mitk::DataNode::New();
  
  dtn->SetData( RGBAImageResult );
  dtn->SetName(m_SelectedNode->GetName() + "_RGBA");
  
  this->GetDefaultDataStorage()->Add( dtn ); // add as a child, because the segmentation "derives" from the original

}
void QmitkColourImageProcessingView::OnConvertToRGBAImage (  ) [protected, slot]

Definition at line 155 of file QmitkColourImageProcessingView.cpp.

References mitk::mitkColourImageProcessor::convertToRGBAImage(), mitk::mitkColourImageProcessor::convertWithBinaryToRGBAImage(), QmitkFunctionality::GetDefaultDataStorage(), mitk::TransferFunctionProperty::GetValue(), mitk::WeakPointer< TObjectType >::IsNotNull(), mitk::WeakPointer< TObjectType >::IsNull(), MITK_INFO, and mitk::DataNode::New().

Referenced by CreateQtPartControl().

{
  if(m_SelectedNode.IsNull())
    return;
    
    
  mitk::TransferFunctionProperty::Pointer transferFunctionProp = dynamic_cast<mitk::TransferFunctionProperty*>(m_SelectedNode->GetProperty("TransferFunction"));

  if(transferFunctionProp.IsNull())
    return;
    
  mitk::TransferFunction::Pointer tf = transferFunctionProp->GetValue();
  
  if(tf.IsNull())
    return;
    
  mitk::mitkColourImageProcessor CImageProcessor;
  
  mitk::Image::Pointer RGBAImageResult;
  
  if(m_SelectedNode2.IsNotNull())
  {
    RGBAImageResult = CImageProcessor.convertWithBinaryToRGBAImage(dynamic_cast<mitk::Image*>(m_SelectedNode->GetData()),dynamic_cast<mitk::Image*>(m_SelectedNode2->GetData()),tf);
  }
  else
  {
    RGBAImageResult = CImageProcessor.convertToRGBAImage(dynamic_cast<mitk::Image*>(m_SelectedNode->GetData()),tf);
  }
  
  if (!RGBAImageResult)
  {
    QMessageBox::warning(NULL, "Warning", QString("Unsupported pixeltype"));
    return;
  }

  mitk::DataNode::Pointer dtn = mitk::DataNode::New();
  
  dtn->SetData( RGBAImageResult );
  dtn->SetName(m_SelectedNode->GetName() + "_RGBA");
  this->GetDefaultDataStorage()->Add( dtn ); // add as a child, because the segmentation "derives" from the original

  MITK_INFO << "convertToRGBAImage finish";

}
void QmitkColourImageProcessingView::SelectionChanged ( berry::IWorkbenchPart::Pointer  part,
berry::ISelection::ConstPointer  selection 
) [virtual]

Definition at line 90 of file QmitkColourImageProcessingView.cpp.

References berry::SmartPointer< TObjectType >::Cast(), mitk::DataNodeObject::GetDataNode(), berry::SmartPointer< TObjectType >::IsNotNull(), m_Controls, Ui_QmitkColourImageProcessingViewControls::m_ImageSelectedLabel, and Ui_QmitkColourImageProcessingViewControls::m_NoImageSelectedLabel.

Referenced by CreateQtPartControl().

{ 

  mitk::DataNodeSelection::ConstPointer _DataNodeSelection 
    = selection.Cast<const mitk::DataNodeSelection>();

  if(_DataNodeSelection.IsNotNull())
  {
    std::vector<mitk::DataNode*> selectedNodes;
    mitk::DataNodeObject* _DataNodeObject = 0;

    for(mitk::DataNodeSelection::iterator it = _DataNodeSelection->Begin();it != _DataNodeSelection->End(); ++it)
    {
      _DataNodeObject = dynamic_cast<mitk::DataNodeObject*>((*it).GetPointer());
      if(_DataNodeObject)
      {
        mitk::DataNode::Pointer node = _DataNodeObject->GetDataNode();
      
        if( node.IsNotNull() && dynamic_cast<mitk::Image*>(node->GetData())&&dynamic_cast<mitk::Image*>(node->GetData())->GetDimension()>=3   )
          selectedNodes.push_back( node );
      }
    }
  
    mitk::DataNode::Pointer node;
    
    if(selectedNodes.size() > 0)
      node=selectedNodes[0];
    
    if( node.IsNotNull() )
    {
      m_SelectedNode = node;
      
      m_Controls->m_NoImageSelectedLabel->hide();
      m_Controls->m_ImageSelectedLabel->show();

      std::string  infoText = std::string("Selected Image: ") + node->GetName();

      if(selectedNodes.size() > 1)
      {
        mitk::DataNode::Pointer node2;
        node2=selectedNodes[1];
        m_SelectedNode2=node2;
        infoText = infoText + " and " + node2->GetName();
      }
      else
      {
        m_SelectedNode2= 0;
      }
      
      m_Controls->m_ImageSelectedLabel->setText( QString( infoText.c_str() ) );
      
    }
    else
    {
      m_Controls->m_ImageSelectedLabel->hide();
      m_Controls->m_NoImageSelectedLabel->show();
      
      m_SelectedNode = 0;
      m_SelectedNode2= 0;
    }
  
  }
}

Member Data Documentation

Definition at line 63 of file QmitkColourImageProcessingView.h.

const std::string QmitkColourImageProcessingView::VIEW_ID = "org.mitk.views.colourimageprocessing" [static]

Definition at line 42 of file QmitkColourImageProcessingView.h.


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