Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::GroupDiffusionHeadersFilter Class Reference
[Process Classes]

Groups Headers containing Diffusion Information. More...

#include <mitkGroupDiffusionHeadersFilter.h>

Inheritance diagram for mitk::GroupDiffusionHeadersFilter:
Inheritance graph
[legend]
Collaboration diagram for mitk::GroupDiffusionHeadersFilter:
Collaboration graph
[legend]

List of all members.

Public Types

typedef GroupDiffusionHeadersFilter Self
typedef BaseProcess Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer
typedef
mitk::DiffusionImageHeaderInformation 
HeaderType
typedef HeaderType::Pointer HeaderPointer
typedef std::vector
< HeaderPointer
InputType
typedef std::vector< InputTypeOutputType

Public Member Functions

virtual const char * GetClassName () const
virtual void SetInput (InputType input)
virtual void SetInput (const unsigned int &idx, InputType input)
virtual void SetNthOutput (const unsigned int &idx, InputType output)
InputType GetInput (void)
InputType GetInput (const unsigned int &idx)
OutputType GetOutput ()
virtual void GenerateOutputInformation ()
virtual void Update ()

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 GroupDiffusionHeadersFilter ()
virtual ~GroupDiffusionHeadersFilter ()

Protected Attributes

OutputType m_Output
InputType m_Input

Detailed Description

Groups Headers containing Diffusion Information.

Definition at line 33 of file mitkGroupDiffusionHeadersFilter.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::GroupDiffusionHeadersFilter::ConstPointer

Definition at line 36 of file mitkGroupDiffusionHeadersFilter.h.

Definition at line 41 of file mitkGroupDiffusionHeadersFilter.h.

Definition at line 38 of file mitkGroupDiffusionHeadersFilter.h.

Definition at line 42 of file mitkGroupDiffusionHeadersFilter.h.

Definition at line 44 of file mitkGroupDiffusionHeadersFilter.h.

Definition at line 36 of file mitkGroupDiffusionHeadersFilter.h.

Definition at line 36 of file mitkGroupDiffusionHeadersFilter.h.

Definition at line 36 of file mitkGroupDiffusionHeadersFilter.h.


Constructor & Destructor Documentation

mitk::GroupDiffusionHeadersFilter::GroupDiffusionHeadersFilter (  ) [protected]

A default constructor

Definition at line 22 of file mitkGroupDiffusionHeadersFilter.cpp.

{
  // Modify superclass default values, may be overridden by subclasses
  this->SetNumberOfRequiredInputs( 1 );
  this->SetNumberOfRequiredOutputs( 4 );
}
mitk::GroupDiffusionHeadersFilter::~GroupDiffusionHeadersFilter (  ) [protected, virtual]

The destructor

Definition at line 30 of file mitkGroupDiffusionHeadersFilter.cpp.

{}

Member Function Documentation

void mitk::GroupDiffusionHeadersFilter::GenerateOutputInformation ( void   ) [virtual]

Definition at line 33 of file mitkGroupDiffusionHeadersFilter.cpp.

{
}
virtual const char* mitk::GroupDiffusionHeadersFilter::GetClassName (  ) const [virtual]
mitk::GroupDiffusionHeadersFilter::InputType mitk::GroupDiffusionHeadersFilter::GetInput ( void   )
Returns:
the input tree of the process object

Definition at line 131 of file mitkGroupDiffusionHeadersFilter.cpp.

{
  return m_Input;
}
mitk::GroupDiffusionHeadersFilter::InputType mitk::GroupDiffusionHeadersFilter::GetInput ( const unsigned int &  idx )
Parameters:
idxthe index of the input to return
Returns:
the input object with the given index

Definition at line 137 of file mitkGroupDiffusionHeadersFilter.cpp.

{
  return this->GetInput();
}
mitk::GroupDiffusionHeadersFilter::OutputType mitk::GroupDiffusionHeadersFilter::GetOutput ( void   )

Definition at line 143 of file mitkGroupDiffusionHeadersFilter.cpp.

{
  return m_Output;
}
static Pointer mitk::GroupDiffusionHeadersFilter::New (  ) [static]
void mitk::GroupDiffusionHeadersFilter::SetInput ( InputType  input ) [virtual]

Sets the input of this process object

Parameters:
inputthe input

Definition at line 118 of file mitkGroupDiffusionHeadersFilter.cpp.

{
  // Process object is not const-correct so the const_cast is required here
  m_Input = input;
}
void mitk::GroupDiffusionHeadersFilter::SetInput ( const unsigned int &  idx,
InputType  input 
) [virtual]

Sets the input n'th of this process object

Parameters:
idxthe number associated with the given input

Definition at line 125 of file mitkGroupDiffusionHeadersFilter.cpp.

{
  this->SetInput( input );
}
void mitk::GroupDiffusionHeadersFilter::SetNthOutput ( const unsigned int &  idx,
InputType  output 
) [virtual]

Sets the input n'th of this process object

Parameters:
idxthe number associated with the given input

Definition at line 148 of file mitkGroupDiffusionHeadersFilter.cpp.

{
  if(idx >= m_Output.size())
    m_Output.resize(idx+1);
  m_Output[idx] = output;
}
void mitk::GroupDiffusionHeadersFilter::Update (  ) [virtual]

Definition at line 37 of file mitkGroupDiffusionHeadersFilter.cpp.

References mitk::DHG_NonZeroDiffusionWeighted, mitk::DHG_NotYetGrouped, mitk::DHG_Other, and mitk::DHG_ZeroDiffusionWeighted.

{
  InputType input =  static_cast<InputType>( this->GetInput( ) );
  this->SetNthOutput(0, input);

  InputType dwi;
  InputType zerodwi;
  InputType other;

  bool foundDWI = false;

  // check each series' first image
  unsigned int size = input.size();
  HeaderPointer header;
  HeaderPointer dwiHeader;
  for ( unsigned int i = 0 ; i < size ; ++i )
  {
    header = input[i];

    // list of files
    if( header->bValue > 0)
    {
      header->headerGroup = DHG_NonZeroDiffusionWeighted;
      if(!foundDWI)
        dwiHeader = header;
      foundDWI = true;
    }
    else
    {
      header->headerGroup = DHG_ZeroDiffusionWeighted;
    }
  }

  if(foundDWI)
  {
    for ( unsigned int i = 0 ; i < size ; ++i )
    {
      header = input[i];

      // list of files
      if( !header->isIdentical(dwiHeader))
      {
        header->headerGroup = DHG_Other;
      }
    }
  }
  else
  {
    for ( unsigned int i = 0 ; i < size ; ++i )
    {
      header = input[i];
      header->headerGroup = DHG_Other;
    }
  }

  for ( unsigned int i = 0 ; i < size ; ++i )
  {
    header = input[i];
    
    switch (header->headerGroup)
    {
    case DHG_Other:
      other.push_back(header);
      break;
    case DHG_ZeroDiffusionWeighted:
      zerodwi.push_back(header);
      break;
    case DHG_NonZeroDiffusionWeighted:
      dwi.push_back(header);
      break;
    case DHG_NotYetGrouped:
      break;
    }
  }

  this->SetNthOutput(1, dwi);
  this->SetNthOutput(2, zerodwi);
  this->SetNthOutput(3, other);

}

Member Data Documentation

Definition at line 94 of file mitkGroupDiffusionHeadersFilter.h.

Definition at line 93 of file mitkGroupDiffusionHeadersFilter.h.


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