Medical Imaging Interaction Toolkit
2016.11.0
Medical Imaging Interaction Toolkit
|
ExtractSliceFilter extracts a 2D abitrary oriented slice from a 3D volume. More...
#include <mitkExtractSliceFilter.h>
Public Member Functions | |
virtual std::vector< std::string > | GetClassHierarchy () const override |
virtual const char * | GetClassName () const |
Pointer | Clone () const |
void | SetWorldGeometry (const PlaneGeometry *geometry) |
Set the axis where to reslice at. More... | |
void | SetTimeStep (unsigned int timestep) |
Set the time step in the 4D volume. More... | |
unsigned int | GetTimeStep () |
void | SetComponent (unsigned int component) |
Set the component of an image to be extracted. More... | |
void | SetResliceTransformByGeometry (const BaseGeometry *transform) |
Set a transform for the reslice axes. This transform is needed if the image volume itself is transformed. (Effects the reslice axis) More... | |
void | SetInPlaneResampleExtentByGeometry (bool inPlaneResampleExtentByGeometry) |
Resampling grid corresponds to: false->image true->worldgeometry. More... | |
void | SetOutputDimensionality (unsigned int dimension) |
Sets the output dimension of the slice. More... | |
void | SetOutputSpacingZDirection (double zSpacing) |
Set the spacing in z direction manually. Required if the outputDimension is > 2. More... | |
void | SetOutputExtentZDirection (int zMin, int zMax) |
Set the extent in pixel for direction z manualy. Required if the output dimension is > 2. More... | |
bool | GetClippedPlaneBounds (double bounds[6]) |
Get the bounding box of the slice [xMin, xMax, yMin, yMax, zMin, zMax] The method uses the input of the filter to calculate the bounds. It is recommended to use GetClippedPlaneBounds(const BaseGeometry*, const PlaneGeometry*, double*) if you are not sure about the input. More... | |
bool | GetClippedPlaneBounds (const BaseGeometry *boundingGeometry, const PlaneGeometry *planeGeometry, double *bounds) |
Get the bounding box of the slice [xMin, xMax, yMin, yMax, zMin, zMax]. More... | |
mitk::ScalarType * | GetOutputSpacing () |
Get the spacing of the slice. returns mitk::ScalarType[2]. More... | |
vtkImageData * | GetVtkOutput () |
Get Output as vtkImageData. Note: SetVtkOutputRequest(true) has to be called at least once before GetVtkOutput(). Otherwise the output is empty for the first update step. More... | |
void | SetVtkOutputRequest (bool isRequested) |
vtkMatrix4x4 * | GetResliceAxes () |
Get the reslices axis matrix. Note: the axis are recalculated when calling SetResliceTransformByGeometry. More... | |
void | SetBackgroundLevel (double backgroundLevel) |
void | SetInterpolationMode (ExtractSliceFilter::ResliceInterpolation interpolation) |
Public Member Functions inherited from mitk::ImageToImageFilter | |
Pointer | Clone () const |
virtual void | SetInput (const InputImageType *image) |
virtual void | SetInput (unsigned int, const InputImageType *image) |
InputImageType * | GetInput (void) |
InputImageType * | GetInput (unsigned int idx) |
const InputImageType * | GetInput (void) const |
const InputImageType * | GetInput (unsigned int idx) const |
Public Member Functions inherited from mitk::ImageSource | |
Pointer | Clone () const |
OutputType * | GetOutput () |
Get the output data of this image source object. More... | |
const OutputType * | GetOutput () const |
OutputType * | GetOutput (DataObjectPointerArraySizeType idx) |
const OutputType * | GetOutput (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 | |
OutputType * | GetOutput () |
const OutputType * | GetOutput () const |
OutputType * | GetOutput (DataObjectPointerArraySizeType idx) |
const OutputType * | GetOutput (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 const char * | GetStaticNameOfClass () |
static Pointer | New () |
static Pointer | New (vtkImageReslice *_arg) |
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 | |
ExtractSliceFilter (vtkImageReslice *reslicer=nullptr) | |
virtual | ~ExtractSliceFilter () |
virtual void | GenerateData () override |
A version of GenerateData() specific for image processing filters. More... | |
virtual void | GenerateOutputInformation () override |
virtual void | GenerateInputRequestedRegion () override |
Protected Member Functions inherited from mitk::ImageToImageFilter | |
ImageToImageFilter () | |
virtual | ~ImageToImageFilter () |
virtual void | PrintSelf (std::ostream &os, itk::Indent indent) const 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 | |
const PlaneGeometry * | m_WorldGeometry |
vtkSmartPointer< vtkImageReslice > | m_Reslicer |
unsigned int | m_TimeStep |
unsigned int | m_OutputDimension |
double | m_ZSpacing |
int | m_ZMin |
int | m_ZMax |
ResliceInterpolation | m_InterpolationMode |
BaseGeometry::ConstPointer | m_ResliceTransform |
bool | m_InPlaneResampleExtentByGeometry |
mitk::ScalarType * | m_OutPutSpacing |
bool | m_VtkOutputRequested |
double | m_BackgroundLevel |
unsigned int | m_Component |
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 () |
ExtractSliceFilter extracts a 2D abitrary oriented slice from a 3D volume.
The filter can reslice in all orthogonal planes such as sagittal, coronal and axial, and is also able to reslice an arbitrary oriented oblique plane. Curved planes are specified via an AbstractTransformGeometry as the input worldgeometry.
Additionally the filter extracts the specified component of a multi-component input image. This is done only if the caller requests an mitk::Image output ('m_VtkOutputRequested' set to false). The default component to be extracted is '0'.
The convenient workflow is:
There are a few more properties that can be set to modify the behavior of the slicing. The properties are:
By default the properties are set to:
Definition at line 67 of file mitkExtractSliceFilter.h.
typedef itk::SmartPointer<const Self> mitk::ExtractSliceFilter::ConstPointer |
Definition at line 70 of file mitkExtractSliceFilter.h.
Definition at line 70 of file mitkExtractSliceFilter.h.
Definition at line 70 of file mitkExtractSliceFilter.h.
Definition at line 70 of file mitkExtractSliceFilter.h.
Enumerator | |
---|---|
RESLICE_NEAREST | |
RESLICE_LINEAR | |
RESLICE_CUBIC |
Definition at line 153 of file mitkExtractSliceFilter.h.
|
protected |
Definition at line 28 of file mitkExtractSliceFilter.cpp.
References m_BackgroundLevel, m_Component, m_InPlaneResampleExtentByGeometry, m_InterpolationMode, m_OutputDimension, m_OutPutSpacing, m_Reslicer, m_ResliceTransform, m_TimeStep, m_VtkOutputRequested, m_ZMax, m_ZMin, m_ZSpacing, mitk::New(), and RESLICE_NEAREST.
|
protectedvirtual |
Definition at line 54 of file mitkExtractSliceFilter.cpp.
Pointer mitk::ExtractSliceFilter::Clone | ( | ) | const |
|
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.
Reimplemented from mitk::ImageSource.
Definition at line 90 of file mitkExtractSliceFilter.cpp.
References mitk::BaseGeometry::GetAxisVector(), mitk::TimeGeometry::GetGeometryForTimeStep(), mitk::PlaneGeometry::GetNormal(), mitk::BaseGeometry::GetOrigin(), mitk::AbstractTransformGeometry::GetParametricExtent(), mitk::AbstractTransformGeometry::GetParametricExtentInMM(), mitk::AbstractTransformGeometry::GetPlane(), mitk::AbstractTransformGeometry::GetVtkAbstractTransform(), mitk::Image::GetVtkImageData(), mitk::TimeGeometry::IsValidTimeStep(), mitk::Image::IsVolumeSet(), mitk::itk2vtk(), max(), MITK_ERROR, mitk::New(), and mitk::vnl2vtk().
|
overrideprotectedvirtual |
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 74 of file mitkExtractSliceFilter.cpp.
|
overrideprotectedvirtual |
Definition at line 61 of file mitkExtractSliceFilter.cpp.
|
inlineoverridevirtual |
Reimplemented from mitk::ImageToImageFilter.
Definition at line 70 of file mitkExtractSliceFilter.h.
|
virtual |
Reimplemented from mitk::ImageToImageFilter.
bool mitk::ExtractSliceFilter::GetClippedPlaneBounds | ( | double | bounds[6] | ) |
Get the bounding box of the slice [xMin, xMax, yMin, yMax, zMin, zMax] The method uses the input of the filter to calculate the bounds. It is recommended to use GetClippedPlaneBounds(const BaseGeometry*, const PlaneGeometry*, double*) if you are not sure about the input.
Definition at line 464 of file mitkExtractSliceFilter.cpp.
bool mitk::ExtractSliceFilter::GetClippedPlaneBounds | ( | const BaseGeometry * | boundingGeometry, |
const PlaneGeometry * | planeGeometry, | ||
double * | bounds | ||
) |
Get the bounding box of the slice [xMin, xMax, yMin, yMax, zMin, zMax].
Definition at line 473 of file mitkExtractSliceFilter.cpp.
References mitk::PlaneClipping::CalculateClippedPlaneBounds().
mitk::ScalarType * mitk::ExtractSliceFilter::GetOutputSpacing | ( | ) |
Get the spacing of the slice. returns mitk::ScalarType[2].
Definition at line 85 of file mitkExtractSliceFilter.cpp.
|
inline |
Get the reslices axis matrix. Note: the axis are recalculated when calling SetResliceTransformByGeometry.
Definition at line 151 of file mitkExtractSliceFilter.h.
|
inlinestatic |
Definition at line 70 of file mitkExtractSliceFilter.h.
|
inline |
Definition at line 84 of file mitkExtractSliceFilter.h.
|
inline |
Get Output as vtkImageData. Note: SetVtkOutputRequest(true) has to be called at least once before GetVtkOutput(). Otherwise the output is empty for the first update step.
Definition at line 135 of file mitkExtractSliceFilter.h.
|
static |
Referenced by QmitkSliceBasedInterpolatorWidget::AcceptAllInterpolations(), QmitkSlicesInterpolator::AcceptAllInterpolations(), mitk::DiffSliceOperationApplier::ExecuteOperation(), mitk::ContourModelSetToImageFilter::GenerateData(), mitk::LabelSetImageVtkMapper2D::GenerateDataForRenderer(), mitk::SegTool2D::GetAffectedImageSliceAs2DImage(), QmitkSliceBasedInterpolatorWidget::GetWorkingSlice(), mitk::SliceBasedInterpolationController::Interpolate(), mitk::SegmentationInterpolationController::Interpolate(), mitk::RegEvaluationMapper2D::LocalStorage::LocalStorage(), mitk::ImageVtkMapper2D::LocalStorage::LocalStorage(), mitk::DoseImageVtkMapper2D::LocalStorage::LocalStorage(), mitkRotatedSlice4DTest(), QmitkSliceBasedInterpolatorWidget::OnAcceptInterpolationClicked(), QmitkSlicesInterpolator::OnAcceptInterpolationClicked(), and mitk::SegTool2D::WriteSliceToVolume().
|
inlinestatic |
Definition at line 73 of file mitkExtractSliceFilter.h.
|
inline |
Definition at line 152 of file mitkExtractSliceFilter.h.
|
inline |
Set the component of an image to be extracted.
Definition at line 87 of file mitkExtractSliceFilter.h.
|
inline |
Resampling grid corresponds to: false->image true->worldgeometry.
Definition at line 94 of file mitkExtractSliceFilter.h.
|
inline |
Definition at line 160 of file mitkExtractSliceFilter.h.
|
inline |
Sets the output dimension of the slice.
Definition at line 100 of file mitkExtractSliceFilter.h.
|
inline |
Set the extent in pixel for direction z manualy. Required if the output dimension is > 2.
Definition at line 108 of file mitkExtractSliceFilter.h.
|
inline |
Set the spacing in z direction manually. Required if the outputDimension is > 2.
Definition at line 104 of file mitkExtractSliceFilter.h.
|
inline |
Set a transform for the reslice axes. This transform is needed if the image volume itself is transformed. (Effects the reslice axis)
Definition at line 92 of file mitkExtractSliceFilter.h.
|
inline |
Set the time step in the 4D volume.
Definition at line 83 of file mitkExtractSliceFilter.h.
|
inline |
Set VtkOutPutRequest to suppress the convertion of the image. It is suggested to use this with GetVtkOutput(). Note: SetVtkOutputRequest(true) has to be called at least once before GetVtkOutput(). Otherwise the output is empty for the first update step.
Definition at line 147 of file mitkExtractSliceFilter.h.
|
inline |
Set the axis where to reslice at.
Definition at line 76 of file mitkExtractSliceFilter.h.
|
protected |
Definition at line 196 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 198 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 190 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 186 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 178 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 192 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 174 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 188 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 176 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 194 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 173 of file mitkExtractSliceFilter.h.
|
protected |
Definition at line 184 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 182 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().
|
protected |
Definition at line 180 of file mitkExtractSliceFilter.h.
Referenced by ExtractSliceFilter().