Filter for clipping an image with a Geometry2D. More...
#include <mitkGeometryClipImageFilter.h>
Public Types | |
typedef GeometryClipImageFilter | Self |
typedef ImageToImageFilter | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
void | SetClippingGeometry (const mitk::Geometry3D *aClippingGeometry) |
const mitk::Geometry3D * | GetClippingGeometry () const |
virtual bool | GetClipPartAboveGeometry () const |
virtual void | SetClipPartAboveGeometry (bool _arg) |
virtual void | ClipPartAboveGeometryOn () |
virtual void | ClipPartAboveGeometryOff () |
virtual void | SetOutsideValue (ScalarType _arg) |
virtual ScalarType | GetOutsideValue () const |
virtual void | SetAutoOutsideValue (bool _arg) |
virtual bool | GetAutoOutsideValue () const |
virtual void | AutoOutsideValueOn () |
virtual void | AutoOutsideValueOff () |
virtual void | SetAutoOrientLabels (bool _arg) |
virtual bool | GetAutoOrientLabels () const |
virtual void | SetLabelBothSides (bool _arg) |
virtual bool | GetLabelBothSides () const |
virtual void | LabelBothSidesOn () |
virtual void | LabelBothSidesOff () |
virtual void | SetAboveGeometryLabel (ScalarType _arg) |
virtual ScalarType | GetAboveGeometryLabel () const |
virtual void | SetBelowGeometryLabel (ScalarType _arg) |
virtual ScalarType | GetBelowGeometryLabel () const |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
GeometryClipImageFilter () | |
~GeometryClipImageFilter () | |
virtual void | GenerateInputRequestedRegion () |
virtual void | GenerateOutputInformation () |
virtual void | GenerateData () |
A version of GenerateData() specific for image processing filters. | |
Protected Attributes | |
mitk::Geometry3D::ConstPointer | m_ClippingGeometry |
mitk::GeometryData::Pointer | m_ClippingGeometryData |
mitk::TimeSlicedGeometry::ConstPointer | m_TimeSlicedClippingGeometry |
mitk::ImageTimeSelector::Pointer | m_InputTimeSelector |
mitk::ImageTimeSelector::Pointer | m_OutputTimeSelector |
bool | m_ClipPartAboveGeometry |
ScalarType | m_OutsideValue |
bool | m_AutoOutsideValue |
bool | m_LabelBothSides |
bool | m_AutoOrientLabels |
Orient above like vtkPolyDataNormals does with AutoOrientNormals. | |
ScalarType | m_AboveGeometryLabel |
ScalarType | m_BelowGeometryLabel |
itk::TimeStamp | m_TimeOfHeaderInitialization |
Friends | |
template<typename TPixel , unsigned int VImageDimension> | |
void | _InternalComputeClippedImage (itk::Image< TPixel, VImageDimension > *itkImage, mitk::GeometryClipImageFilter *geometryClipper, const mitk::Geometry2D *clippingGeometry2D) |
Filter for clipping an image with a Geometry2D.
The given geometry for clipping can be either a Geometry2D or a TimeSlicedGeometry containing multiple instances of Geometry2D
Definition at line 46 of file mitkGeometryClipImageFilter.h.
typedef itk::SmartPointer<const Self> mitk::GeometryClipImageFilter::ConstPointer |
Definition at line 49 of file mitkGeometryClipImageFilter.h.
typedef itk::SmartPointer<Self> mitk::GeometryClipImageFilter::Pointer |
Definition at line 49 of file mitkGeometryClipImageFilter.h.
Definition at line 49 of file mitkGeometryClipImageFilter.h.
Definition at line 49 of file mitkGeometryClipImageFilter.h.
mitk::GeometryClipImageFilter::GeometryClipImageFilter | ( | ) | [protected] |
Definition at line 31 of file mitkGeometryClipImageFilter.cpp.
References m_ClippingGeometryData, m_InputTimeSelector, m_OutputTimeSelector, and New().
: m_ClippingGeometry(NULL), m_ClipPartAboveGeometry(true), m_OutsideValue(0), m_AutoOutsideValue(false), m_LabelBothSides(false), m_AutoOrientLabels(false), m_AboveGeometryLabel(1), m_BelowGeometryLabel(2) { this->SetNumberOfInputs(2); this->SetNumberOfRequiredInputs(2); m_InputTimeSelector = mitk::ImageTimeSelector::New(); m_OutputTimeSelector = mitk::ImageTimeSelector::New(); m_ClippingGeometryData = mitk::GeometryData::New(); }
mitk::GeometryClipImageFilter::~GeometryClipImageFilter | ( | ) | [protected] |
Definition at line 48 of file mitkGeometryClipImageFilter.cpp.
{ }
virtual void mitk::GeometryClipImageFilter::AutoOutsideValueOff | ( | ) | [virtual] |
virtual void mitk::GeometryClipImageFilter::AutoOutsideValueOn | ( | ) | [virtual] |
virtual void mitk::GeometryClipImageFilter::ClipPartAboveGeometryOff | ( | ) | [virtual] |
virtual void mitk::GeometryClipImageFilter::ClipPartAboveGeometryOn | ( | ) | [virtual] |
void mitk::GeometryClipImageFilter::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.
Reimplemented from mitk::ImageSource.
Definition at line 195 of file mitkGeometryClipImageFilter.cpp.
References AccessByItk_2, mitk::TimeSlicedGeometry::MSToTimeStep(), QuadProgPP::t(), and mitk::TimeSlicedGeometry::TimeStepToMS().
{ Image::ConstPointer input = this->GetInput(); Image::Pointer output = this->GetOutput(); if((output->IsInitialized()==false) || (m_ClippingGeometry.IsNull())) return; const Geometry2D * clippingGeometryOfCurrentTimeStep = NULL; if(m_TimeSlicedClippingGeometry.IsNull()) { clippingGeometryOfCurrentTimeStep = dynamic_cast<const Geometry2D*>(m_ClippingGeometry.GetPointer()); } else { clippingGeometryOfCurrentTimeStep = dynamic_cast<const Geometry2D*>(m_TimeSlicedClippingGeometry->GetGeometry3D(0)); } if(clippingGeometryOfCurrentTimeStep == NULL) return; m_InputTimeSelector->SetInput(input); m_OutputTimeSelector->SetInput(this->GetOutput()); mitk::Image::RegionType outputRegion = output->GetRequestedRegion(); const mitk::TimeSlicedGeometry *outputTimeGeometry = output->GetTimeSlicedGeometry(); const mitk::TimeSlicedGeometry *inputTimeGeometry = input->GetTimeSlicedGeometry(); ScalarType timeInMS; int timestep=0; int tstart=outputRegion.GetIndex(3); int tmax=tstart+outputRegion.GetSize(3); int t; for(t=tstart;t<tmax;++t) { timeInMS = outputTimeGeometry->TimeStepToMS( t ); timestep = inputTimeGeometry->MSToTimeStep( timeInMS ); m_InputTimeSelector->SetTimeNr(timestep); m_InputTimeSelector->UpdateLargestPossibleRegion(); m_OutputTimeSelector->SetTimeNr(t); m_OutputTimeSelector->UpdateLargestPossibleRegion(); if(m_TimeSlicedClippingGeometry.IsNotNull()) { timestep = m_TimeSlicedClippingGeometry->MSToTimeStep( timeInMS ); if(m_TimeSlicedClippingGeometry->IsValidTime(timestep) == false) continue; clippingGeometryOfCurrentTimeStep = dynamic_cast<const Geometry2D*>(m_TimeSlicedClippingGeometry->GetGeometry3D(timestep)); } AccessByItk_2(m_InputTimeSelector->GetOutput(),_InternalComputeClippedImage,this,clippingGeometryOfCurrentTimeStep); } m_TimeOfHeaderInitialization.Modified(); }
void mitk::GeometryClipImageFilter::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.
Reimplemented from mitk::ImageToImageFilter.
Definition at line 70 of file mitkGeometryClipImageFilter.cpp.
References mitk::GenerateTimeInInputRegion(), mitk::BaseData::IsInitialized(), and mitk::SlicedData::SetRequestedRegionToLargestPossibleRegion().
{ Superclass::GenerateInputRequestedRegion(); mitk::Image* output = this->GetOutput(); mitk::Image* input = const_cast< mitk::Image * > ( this->GetInput() ); if((output->IsInitialized()==false) || (m_ClippingGeometry.IsNull())) return; input->SetRequestedRegionToLargestPossibleRegion(); GenerateTimeInInputRegion(output, input); }
void mitk::GeometryClipImageFilter::GenerateOutputInformation | ( | void | ) | [protected, virtual] |
Definition at line 84 of file mitkGeometryClipImageFilter.cpp.
{ mitk::Image::ConstPointer input = this->GetInput(); mitk::Image::Pointer output = this->GetOutput(); if ((output->IsInitialized()) && (this->GetMTime() <= m_TimeOfHeaderInitialization.GetMTime())) return; itkDebugMacro(<<"GenerateOutputInformation()"); unsigned int i; unsigned int *tmpDimensions = new unsigned int[input->GetDimension()]; for(i=0;i<input->GetDimension();++i) tmpDimensions[i]=input->GetDimension(i); output->Initialize(input->GetPixelType(), input->GetDimension(), tmpDimensions, input->GetNumberOfChannels()); delete [] tmpDimensions; output->SetGeometry(static_cast<mitk::Geometry3D*>(input->GetGeometry()->Clone().GetPointer())); output->SetPropertyList(input->GetPropertyList()->Clone()); m_TimeOfHeaderInitialization.Modified(); }
virtual ScalarType mitk::GeometryClipImageFilter::GetAboveGeometryLabel | ( | ) | const [virtual] |
virtual bool mitk::GeometryClipImageFilter::GetAutoOrientLabels | ( | ) | const [virtual] |
virtual bool mitk::GeometryClipImageFilter::GetAutoOutsideValue | ( | ) | const [virtual] |
virtual ScalarType mitk::GeometryClipImageFilter::GetBelowGeometryLabel | ( | ) | const [virtual] |
virtual const char* mitk::GeometryClipImageFilter::GetClassName | ( | ) | const [virtual] |
virtual bool mitk::GeometryClipImageFilter::GetClipPartAboveGeometry | ( | ) | const [virtual] |
const mitk::Geometry3D * mitk::GeometryClipImageFilter::GetClippingGeometry | ( | ) | const |
Definition at line 65 of file mitkGeometryClipImageFilter.cpp.
{ return m_ClippingGeometry; }
virtual bool mitk::GeometryClipImageFilter::GetLabelBothSides | ( | ) | const [virtual] |
virtual ScalarType mitk::GeometryClipImageFilter::GetOutsideValue | ( | ) | const [virtual] |
virtual void mitk::GeometryClipImageFilter::LabelBothSidesOff | ( | ) | [virtual] |
virtual void mitk::GeometryClipImageFilter::LabelBothSidesOn | ( | ) | [virtual] |
static Pointer mitk::GeometryClipImageFilter::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from mitk::ImageToImageFilter.
Referenced by GeometryClipImageFilter().
virtual void mitk::GeometryClipImageFilter::SetAboveGeometryLabel | ( | ScalarType | _arg ) | [virtual] |
virtual void mitk::GeometryClipImageFilter::SetAutoOrientLabels | ( | bool | _arg ) | [virtual] |
virtual void mitk::GeometryClipImageFilter::SetAutoOutsideValue | ( | bool | _arg ) | [virtual] |
virtual void mitk::GeometryClipImageFilter::SetBelowGeometryLabel | ( | ScalarType | _arg ) | [virtual] |
virtual void mitk::GeometryClipImageFilter::SetClipPartAboveGeometry | ( | bool | _arg ) | [virtual] |
void mitk::GeometryClipImageFilter::SetClippingGeometry | ( | const mitk::Geometry3D * | aClippingGeometry ) |
Definition at line 53 of file mitkGeometryClipImageFilter.cpp.
{ if(aClippingGeometry != m_ClippingGeometry.GetPointer()) { m_ClippingGeometry = aClippingGeometry; m_TimeSlicedClippingGeometry = dynamic_cast<const TimeSlicedGeometry*>(aClippingGeometry); m_ClippingGeometryData->SetGeometry(const_cast<mitk::Geometry3D*>(aClippingGeometry)); SetNthInput(1, m_ClippingGeometryData); Modified(); } }
virtual void mitk::GeometryClipImageFilter::SetLabelBothSides | ( | bool | _arg ) | [virtual] |
virtual void mitk::GeometryClipImageFilter::SetOutsideValue | ( | ScalarType | _arg ) | [virtual] |
void _InternalComputeClippedImage | ( | itk::Image< TPixel, VImageDimension > * | itkImage, |
mitk::GeometryClipImageFilter * | geometryClipper, | ||
const mitk::Geometry2D * | clippingGeometry2D | ||
) | [friend] |
ScalarType mitk::GeometryClipImageFilter::m_AboveGeometryLabel [protected] |
Definition at line 157 of file mitkGeometryClipImageFilter.h.
bool mitk::GeometryClipImageFilter::m_AutoOrientLabels [protected] |
Orient above like vtkPolyDataNormals does with AutoOrientNormals.
Definition at line 152 of file mitkGeometryClipImageFilter.h.
bool mitk::GeometryClipImageFilter::m_AutoOutsideValue [protected] |
Definition at line 142 of file mitkGeometryClipImageFilter.h.
ScalarType mitk::GeometryClipImageFilter::m_BelowGeometryLabel [protected] |
Definition at line 162 of file mitkGeometryClipImageFilter.h.
bool mitk::GeometryClipImageFilter::m_ClipPartAboveGeometry [protected] |
Definition at line 132 of file mitkGeometryClipImageFilter.h.
Definition at line 123 of file mitkGeometryClipImageFilter.h.
Definition at line 124 of file mitkGeometryClipImageFilter.h.
Referenced by GeometryClipImageFilter().
mitk::ImageTimeSelector::Pointer mitk::GeometryClipImageFilter::m_InputTimeSelector [protected] |
Definition at line 126 of file mitkGeometryClipImageFilter.h.
Referenced by GeometryClipImageFilter().
bool mitk::GeometryClipImageFilter::m_LabelBothSides [protected] |
Definition at line 147 of file mitkGeometryClipImageFilter.h.
mitk::ImageTimeSelector::Pointer mitk::GeometryClipImageFilter::m_OutputTimeSelector [protected] |
Definition at line 127 of file mitkGeometryClipImageFilter.h.
Referenced by GeometryClipImageFilter().
ScalarType mitk::GeometryClipImageFilter::m_OutsideValue [protected] |
Definition at line 138 of file mitkGeometryClipImageFilter.h.
itk::TimeStamp mitk::GeometryClipImageFilter::m_TimeOfHeaderInitialization [protected] |
Definition at line 166 of file mitkGeometryClipImageFilter.h.
mitk::TimeSlicedGeometry::ConstPointer mitk::GeometryClipImageFilter::m_TimeSlicedClippingGeometry [protected] |
Definition at line 125 of file mitkGeometryClipImageFilter.h.