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

mitk::ImageSliceSelector Class Reference
[Process Classes]

Provides access to a slice of the input image. More...

#include <mitkImageSliceSelector.h>

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

List of all members.

Public Member Functions

 mitkClassMacro (ImageSliceSelector, SubImageSelector)
virtual int GetSliceNr () const
virtual void SetSliceNr (int _arg)
virtual int GetTimeNr () const
virtual void SetTimeNr (int _arg)
virtual int GetChannelNr () const
virtual void SetChannelNr (int _arg)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

virtual void GenerateOutputInformation ()
virtual void GenerateInputRequestedRegion ()
virtual void GenerateData ()
 A version of GenerateData() specific for image processing filters.
 ImageSliceSelector ()
virtual ~ImageSliceSelector ()

Protected Attributes

int m_SliceNr
int m_TimeNr
int m_ChannelNr

Detailed Description

Provides access to a slice of the input image.

If the input is generated by a ProcessObject, only the required data is requested.

Definition at line 33 of file mitkImageSliceSelector.h.


Constructor & Destructor Documentation

mitk::ImageSliceSelector::ImageSliceSelector (  ) [protected]

Definition at line 52 of file mitkImageSliceSelector.cpp.

                                           : m_SliceNr(0), m_TimeNr(0), m_ChannelNr(0)
{
}
mitk::ImageSliceSelector::~ImageSliceSelector (  ) [protected, virtual]

Definition at line 57 of file mitkImageSliceSelector.cpp.

{
}

Member Function Documentation

void mitk::ImageSliceSelector::GenerateData (  ) [protected, virtual]

A version of GenerateData() specific for image processing filters.

This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See also:
ThreadedGenerateData()

Reimplemented from mitk::ImageSource.

Definition at line 47 of file mitkImageSliceSelector.cpp.

void mitk::ImageSliceSelector::GenerateInputRequestedRegion (  ) [protected, virtual]

What is the input requested region that is required to produce the output requested region? The base assumption for image processing filters is that the input requested region can be set to match the output requested region. If a filter requires more input (for instance a filter that uses neighborhoods needs more input than output to avoid introducing artificial boundary conditions) or less input (for instance a magnify filter) will have to override this method. In doing so, it should call its superclass' implementation as its first step. Note that this imaging filters operate differently than the classes to this point in the class hierachy. Up till now, the base assumption has been that the largest possible region will be requested of the input.

See also:
ProcessObject::GenerateInputRequestedRegion(), ImageSource::GenerateInputRequestedRegion()

Reimplemented from mitk::ImageToImageFilter.

Definition at line 61 of file mitkImageSliceSelector.cpp.

{
  Superclass::GenerateInputRequestedRegion();

  mitk::ImageToImageFilter::InputImagePointer input =
    const_cast< mitk::ImageToImageFilter::InputImageType * > ( this->GetInput() );
  mitk::Image::Pointer output = this->GetOutput();

  Image::RegionType requestedRegion;
  requestedRegion = output->GetRequestedRegion();
  requestedRegion.SetIndex(2, m_SliceNr);
  requestedRegion.SetIndex(3, m_TimeNr);
  requestedRegion.SetIndex(4, m_ChannelNr);
  requestedRegion.SetSize(2, 1);
  requestedRegion.SetSize(3, 1);
  requestedRegion.SetSize(4, 1);

  input->SetRequestedRegion( & requestedRegion );
}
void mitk::ImageSliceSelector::GenerateOutputInformation (  ) [protected, virtual]

Definition at line 23 of file mitkImageSliceSelector.cpp.

References mitk::ImageToImageFilter::GetInput(), mitk::ImageSource::GetOutput(), m_SliceNr, and m_TimeNr.

{
  mitk::Image::ConstPointer input  = this->GetInput();
  mitk::Image::Pointer output = this->GetOutput();

  itkDebugMacro(<<"GenerateOutputInformation()");

  output->Initialize(input->GetPixelType(), 2, input->GetDimensions());

  if( (unsigned int)m_SliceNr >= input->GetDimension(2) )
  {
    m_SliceNr = input->GetDimension(2)-1;
  }

  if( (unsigned int)m_TimeNr >= input->GetDimension(3) )
  {
    m_TimeNr = input->GetDimension(3)-1;
  }

  // initialize geometry
  output->SetGeometry(dynamic_cast<Geometry3D*>(input->GetSlicedGeometry(m_TimeNr)->GetGeometry2D(m_SliceNr)->Clone().GetPointer()));
  output->SetPropertyList(input->GetPropertyList()->Clone());
}
virtual int mitk::ImageSliceSelector::GetChannelNr (  ) const [virtual]
virtual int mitk::ImageSliceSelector::GetSliceNr (  ) const [virtual]
virtual int mitk::ImageSliceSelector::GetTimeNr (  ) const [virtual]
mitk::ImageSliceSelector::mitkClassMacro ( ImageSliceSelector  ,
SubImageSelector   
)
static Pointer mitk::ImageSliceSelector::New (  ) [static]

Method for creation through the object factory.

Reimplemented from mitk::SubImageSelector.

Referenced by mitkCylindricToCartesianFilterTest(), mitkImageSliceSelectorTest(), and mitk::LevelWindow::SetAuto().

virtual void mitk::ImageSliceSelector::SetChannelNr ( int  _arg ) [virtual]
virtual void mitk::ImageSliceSelector::SetSliceNr ( int  _arg ) [virtual]
virtual void mitk::ImageSliceSelector::SetTimeNr ( int  _arg ) [virtual]

Member Data Documentation

Definition at line 65 of file mitkImageSliceSelector.h.

Definition at line 61 of file mitkImageSliceSelector.h.

Referenced by GenerateOutputInformation().

Definition at line 63 of file mitkImageSliceSelector.h.

Referenced by GenerateOutputInformation().


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