Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitk::CorrectorAlgorithm Class Reference

#include <mitkCorrectorAlgorithm.h>

Inheritance diagram for mitk::CorrectorAlgorithm:
Collaboration diagram for mitk::CorrectorAlgorithm:

Classes

struct  TSegData
 Calculated difference image. More...
 

Public Types

typedef mitk::Label::PixelType DefaultSegmentationDataType
 
- Public Types inherited from mitk::ImageToImageFilter
typedef ImageToImageFilter Self
 
typedef ImageSource Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef Superclass::OutputImageRegionType OutputImageRegionType
 
typedef mitk::Image InputImageType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef InputImageType::ConstPointer InputImageConstPointer
 
typedef SlicedData::RegionType InputImageRegionType
 
- Public Types inherited from mitk::ImageSource
typedef ImageSource Self
 
typedef BaseDataSource Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef mitk::Image OutputImageType
 Some convenient typedefs. More...
 
typedef OutputImageType OutputType
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef SlicedData::RegionType OutputImageRegionType
 
- Public Types inherited from mitk::BaseDataSource
typedef BaseDataSource Self
 
typedef itk::ProcessObject Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef BaseData OutputType
 
typedef itk::DataObject::DataObjectIdentifierType DataObjectIdentifierType
 

Public Member Functions

 mitkClassMacro (CorrectorAlgorithm, ImageToImageFilter)
 
Pointer Clone () const
 
void SetContour (ContourModel *contour)
 User drawn contour. More...
 
virtual void SetFillColor (int _arg)
 
virtual int GetFillColor () const
 
virtual void SetEraseColor (int _arg)
 
virtual int GetEraseColor () const
 
- Public Member Functions inherited from mitk::ImageToImageFilter
virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
Pointer Clone () const
 
virtual void SetInput (const InputImageType *image)
 
virtual void SetInput (unsigned int, const InputImageType *image)
 
InputImageTypeGetInput (void)
 
InputImageTypeGetInput (unsigned int idx)
 
const InputImageTypeGetInput (void) const
 
const InputImageTypeGetInput (unsigned int idx) const
 
- Public Member Functions inherited from mitk::ImageSource
Pointer Clone () const
 
OutputTypeGetOutput ()
 Get the output data of this image source object. More...
 
const OutputTypeGetOutput () const
 
OutputTypeGetOutput (DataObjectPointerArraySizeType idx)
 
const OutputTypeGetOutput (DataObjectPointerArraySizeType idx) const
 
virtual itk::DataObject::Pointer MakeOutput (DataObjectPointerArraySizeType idx) override
 Make a DataObject of the correct type to used as the specified output. More...
 
virtual itk::DataObject::Pointer MakeOutput (const DataObjectIdentifierType &name) override
 
virtual vtkImageData * GetVtkImageData ()
 
virtual const vtkImageData * GetVtkImageData () const
 
- Public Member Functions inherited from mitk::BaseDataSource
OutputTypeGetOutput ()
 
const OutputTypeGetOutput () const
 
OutputTypeGetOutput (DataObjectPointerArraySizeType idx)
 
const OutputTypeGetOutput (DataObjectPointerArraySizeType idx) const
 
virtual void GraftOutput (OutputType *output)
 Graft the specified BaseData onto this BaseDataSource's output. More...
 
virtual void GraftOutput (const DataObjectIdentifierType &key, OutputType *output)
 
virtual void GraftNthOutput (unsigned int idx, OutputType *output)
 Graft the specified base data object onto this BaseDataSource's idx'th output. More...
 
bool Updating () const
 Access itk::ProcessObject::m_Updating. More...
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from mitk::ImageToImageFilter
static const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
- Static Public Member Functions inherited from mitk::ImageSource
static const char * GetStaticNameOfClass ()
 
static Pointer New ()
 Method for creation through the object factory. More...
 
- Static Public Member Functions inherited from mitk::BaseDataSource
static const char * GetStaticNameOfClass ()
 

Protected Member Functions

 CorrectorAlgorithm ()
 
virtual ~CorrectorAlgorithm ()
 
virtual void GenerateData () override
 A version of GenerateData() specific for image processing filters. More...
 
bool ImprovedHeimannCorrectionAlgorithm (itk::Image< DefaultSegmentationDataType, 2 >::Pointer pic)
 
bool ModifySegment (const TSegData &segment, itk::Image< DefaultSegmentationDataType, 2 >::Pointer pic)
 
- Protected Member Functions inherited from mitk::ImageToImageFilter
 ImageToImageFilter ()
 
virtual ~ImageToImageFilter ()
 
virtual void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
virtual void GenerateInputRequestedRegion () override
 
- Protected Member Functions inherited from mitk::ImageSource
 ImageSource ()
 
virtual ~ImageSource ()
 
virtual void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, itk::ThreadIdType threadId)
 If an imaging filter can be implemented as a multithreaded algorithm, the filter will provide an implementation of ThreadedGenerateData(). More...
 
virtual void PrepareOutputs () override
 This method is intentionally left blank. More...
 
virtual void AllocateOutputs ()
 The GenerateData method normally allocates the buffers for all of the outputs of a filter. More...
 
virtual void BeforeThreadedGenerateData ()
 If an imaging filter needs to perform processing after the buffer has been allocated but before threads are spawned, the filter can can provide an implementation for BeforeThreadedGenerateData(). More...
 
virtual void AfterThreadedGenerateData ()
 If an imaging filter needs to perform processing after all processing threads have completed, the filter can can provide an implementation for AfterThreadedGenerateData(). More...
 
virtual unsigned int SplitRequestedRegion (unsigned int i, unsigned int num, OutputImageRegionType &splitRegion)
 Split the output's RequestedRegion into "num" pieces, returning region "i" as "splitRegion". More...
 
- Protected Member Functions inherited from mitk::BaseDataSource
 BaseDataSource ()
 
virtual ~BaseDataSource ()
 

Protected Attributes

Image::Pointer m_WorkingImage
 
ContourModel::Pointer m_Contour
 
Image::Pointer m_DifferenceImage
 
int m_FillColor
 
int m_EraseColor
 

Additional Inherited Members

- Static Protected Member Functions inherited from mitk::ImageSource
static ITK_THREAD_RETURN_TYPE ThreaderCallback (void *arg)
 Static function used as a "callback" by the MultiThreader. More...
 
- Static Protected Member Functions inherited from mitk::BaseDataSource
static Pointer New ()
 

Detailed Description

This class encapsulates an algorithm, which takes a 2D binary image and a contour. The algorithm tests if the line begins and ends inside or outside a segmentation and whether areas should be added to or subtracted from the segmentation shape.

This class has two outputs:

The output image is a combination of the original input with the generated difference image.

See also
CorrectorTool2D

Definition at line 43 of file mitkCorrectorAlgorithm.h.

Member Typedef Documentation

Constructor & Destructor Documentation

mitk::CorrectorAlgorithm::CorrectorAlgorithm ( )
protected

Definition at line 31 of file mitkCorrectorAlgorithm.cpp.

mitk::CorrectorAlgorithm::~CorrectorAlgorithm ( )
protectedvirtual

Definition at line 35 of file mitkCorrectorAlgorithm.cpp.

Member Function Documentation

Pointer mitk::CorrectorAlgorithm::Clone ( ) const
void mitk::CorrectorAlgorithm::GenerateData ( )
overrideprotectedvirtual

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 57 of file mitkCorrectorAlgorithm.cpp.

References AccessByItk_n, mitk::CastToItkImage(), mitk::CastToMitkImage(), ConvertBackToCorrectPixelType(), and mitk::ImageToImageFilter::GetInput().

virtual int mitk::CorrectorAlgorithm::GetEraseColor ( ) const
virtual
virtual int mitk::CorrectorAlgorithm::GetFillColor ( ) const
virtual
bool mitk::CorrectorAlgorithm::ImprovedHeimannCorrectionAlgorithm ( itk::Image< DefaultSegmentationDataType, 2 >::Pointer  pic)
protected

Some documentation (not by the original author)

TobiasHeimannCorrectionAlgorithm will be called, when the user has finished drawing a freehand line.

There should be different results, depending on the line's properties:

  1. Without any prior segmentation, the start point and the end point of the drawn line will be connected to a contour and the area enclosed by the contour will be marked as segmentation.
  2. When the whole line is inside a segmentation, start and end point will be connected to a contour and the area of this contour will be subtracted from the segmentation.
  3. When the line starts inside a segmentation and ends outside with only a single transition from segmentation to no-segmentation, nothing will happen.
  4. When there are multiple transitions between inside-segmentation and outside-segmentation, the line will be divided in so called segments. Each segment is either fully inside or fully outside a segmentation. When it is inside a segmentation, its enclosed area will be subtracted from the segmentation. When the segment is outside a segmentation, its enclosed area it will be added to the segmentation.

The algorithm is described in full length in Tobias Heimann's diploma thesis (MBI Technical Report 145, p. 37 - 40).

Definition at line 138 of file mitkCorrectorAlgorithm.cpp.

References mitk::CorrectorAlgorithm::TSegData::points, and mitk::ContourModelUtils::ProjectContourTo2DSlice().

mitk::CorrectorAlgorithm::mitkClassMacro ( CorrectorAlgorithm  ,
ImageToImageFilter   
)
bool mitk::CorrectorAlgorithm::ModifySegment ( const TSegData segment,
itk::Image< DefaultSegmentationDataType, 2 >::Pointer  pic 
)
protected

Definition at line 469 of file mitkCorrectorAlgorithm.cpp.

static Pointer mitk::CorrectorAlgorithm::New ( )
static
void mitk::CorrectorAlgorithm::SetContour ( ContourModel contour)
inline

User drawn contour.

Definition at line 54 of file mitkCorrectorAlgorithm.h.

virtual void mitk::CorrectorAlgorithm::SetEraseColor ( int  _arg)
virtual
virtual void mitk::CorrectorAlgorithm::SetFillColor ( int  _arg)
virtual

Member Data Documentation

ContourModel::Pointer mitk::CorrectorAlgorithm::m_Contour
protected

Definition at line 86 of file mitkCorrectorAlgorithm.h.

Image::Pointer mitk::CorrectorAlgorithm::m_DifferenceImage
protected

Definition at line 87 of file mitkCorrectorAlgorithm.h.

int mitk::CorrectorAlgorithm::m_EraseColor
protected

Definition at line 90 of file mitkCorrectorAlgorithm.h.

int mitk::CorrectorAlgorithm::m_FillColor
protected

Definition at line 89 of file mitkCorrectorAlgorithm.h.

Image::Pointer mitk::CorrectorAlgorithm::m_WorkingImage
protected

Definition at line 85 of file mitkCorrectorAlgorithm.h.


The documentation for this class was generated from the following files: