Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitk::ToFDistanceImageToSurfaceFilter Class Reference

Converts a Time-of-Flight (ToF) distance image to a 3D surface using the pinhole camera model for coordinate computation. The intrinsic parameters of the camera (FocalLength, PrincipalPoint, InterPixelDistance) are set via SetCameraIntrinsics(). The measured distance for each pixel corresponds to the distance between the object point and the corresponding image point on the image plane. More...

#include <mitkToFDistanceImageToSurfaceFilter.h>

Inheritance diagram for mitk::ToFDistanceImageToSurfaceFilter:
Collaboration diagram for mitk::ToFDistanceImageToSurfaceFilter:

Public Types

enum  ReconstructionModeType { WithOutInterPixelDistance, WithInterPixelDistance, Kinect }
 The ReconstructionModeType enum: Defines the reconstruction mode, if using no interpixeldistances and focal lenghts in pixel units or interpixeldistances and focal length in mm. The Kinect option defines a special reconstruction mode for the kinect. More...
 
- Public Types inherited from mitk::SurfaceSource
typedef SurfaceSource Self
 
typedef BaseDataSource Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef Surface OutputType
 
- 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 (ToFDistanceImageToSurfaceFilter, SurfaceSource)
 
Pointer Clone () const
 
virtual void SetCameraIntrinsics (mitk::CameraIntrinsics::Pointer _arg)
 
virtual mitk::CameraIntrinsics::Pointer GetCameraIntrinsics ()
 
virtual void SetInterPixelDistance (ToFProcessingCommon::ToFPoint2D _arg)
 
virtual ToFProcessingCommon::ToFPoint2D GetInterPixelDistance ()
 
virtual void SetTextureIndex (int _arg)
 
void SetTriangulationThreshold (double triangulationThreshold)
 SetTriangulationThreshold Sets a triangulation threshold in order to remove unusually huge faces from the surface. If this value is set, the filter will check whether the distance between two neighboring vertices exceeds the triangulation threshold. If yes, there vertices will not be triangulated (connected with lines). The vertices will still be added to the surface, but only as single point (if they have no other neighbors). More...
 
virtual double GetTriangulationThreshold ()
 
virtual void SetVertexIdList (vtkSmartPointer< vtkIdList > _arg)
 
virtual vtkSmartPointer< vtkIdList > GetVertexIdList ()
 
virtual void SetGenerateTriangularMesh (bool _arg)
 
virtual bool GetGenerateTriangularMesh ()
 
 itkSetEnumMacro (ReconstructionMode, ReconstructionModeType)
 
 itkGetEnumMacro (ReconstructionMode, ReconstructionModeType)
 
void SetScalarImage (IplImage *iplScalarImage)
 Set scalar image used as texture of the surface. More...
 
IplImage * GetScalarImage ()
 Set scalar image used as texture of the surface. More...
 
void SetTextureImageWidth (int width)
 Set width of the scalar image used for texturing the surface. More...
 
void SetTextureImageHeight (int height)
 Set height of the scalar image used for texturing the surface. More...
 
virtual void SetInput (Image *distanceImage)
 Sets the input of this filter. More...
 
virtual void SetInput (Image *distanceImage, mitk::CameraIntrinsics::Pointer cameraIntrinsics)
 Sets the input of this filter and the intrinsic parameters. More...
 
virtual void SetInput (unsigned int idx, Image *distanceImage)
 Sets the input of this filter at idx. More...
 
virtual void SetInput (unsigned int idx, Image *distanceImage, mitk::CameraIntrinsics::Pointer cameraIntrinsics)
 Sets the input of this filter at idx and the intrinsic parameters. More...
 
ImageGetInput ()
 Returns the input of this filter. More...
 
ImageGetInput (unsigned int idx)
 Returns the input with id idx of this filter. More...
 
- Public Member Functions inherited from mitk::SurfaceSource
virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
Pointer Clone () const
 
OutputTypeGetOutput ()
 
const OutputTypeGetOutput () const
 
OutputTypeGetOutput (DataObjectPointerArraySizeType idx)
 
const OutputTypeGetOutput (DataObjectPointerArraySizeType idx) const
 
itk::DataObject::Pointer MakeOutput (DataObjectPointerArraySizeType idx) override
 
itk::DataObject::Pointer MakeOutput (const DataObjectIdentifierType &name) override
 
- 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::SurfaceSource
static const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
- Static Public Member Functions inherited from mitk::BaseDataSource
static const char * GetStaticNameOfClass ()
 

Protected Member Functions

 ToFDistanceImageToSurfaceFilter ()
 Standard constructor. More...
 
 ~ToFDistanceImageToSurfaceFilter () override
 Standard destructor. More...
 
void GenerateOutputInformation () override
 
void GenerateData () override
 Method generating the output of this filter. Called in the updated process of the pipeline. This method generates the output of the ToFSurfaceSource: The generated surface of the 3d points. More...
 
void CreateOutputsForAllInputs ()
 Create an output for each input. More...
 
- Protected Member Functions inherited from mitk::SurfaceSource
 SurfaceSource ()
 
 ~SurfaceSource () override
 
- Protected Member Functions inherited from mitk::BaseDataSource
 BaseDataSource ()
 
 ~BaseDataSource () override
 

Protected Attributes

IplImage * m_IplScalarImage
 Scalar image used for surface texturing. More...
 
mitk::CameraIntrinsics::Pointer m_CameraIntrinsics
 Specifies the intrinsic parameters. More...
 
int m_TextureImageWidth
 Width (x-dimension) of the texture image. More...
 
int m_TextureImageHeight
 Height (y-dimension) of the texture image. More...
 
ToFProcessingCommon::ToFPoint2D m_InterPixelDistance
 distance in mm between two adjacent pixels on the ToF camera chip More...
 
int m_TextureIndex
 Index of the input used as texture image when no scalar image was set via SetIplScalarImage(). 0 = Distance, 1 = Amplitude, 2 = Intensity. More...
 
bool m_GenerateTriangularMesh
 
ReconstructionModeType m_ReconstructionMode
 The ReconstructionModeType enum: Defines the reconstruction mode, if using no interpixeldistances and focal lenghts in pixel units or interpixeldistances and focal length in mm. The Kinect option defines a special reconstruction mode for the kinect. More...
 
vtkSmartPointer< vtkIdList > m_VertexIdList
 Make a vtkIdList to save the ID's of the polyData corresponding to the image pixel ID's. This can be accessed after generate data to obtain the mapping. More...
 
double m_TriangulationThreshold
 

Additional Inherited Members

- Static Protected Member Functions inherited from mitk::BaseDataSource
static Pointer New ()
 

Detailed Description

Converts a Time-of-Flight (ToF) distance image to a 3D surface using the pinhole camera model for coordinate computation. The intrinsic parameters of the camera (FocalLength, PrincipalPoint, InterPixelDistance) are set via SetCameraIntrinsics(). The measured distance for each pixel corresponds to the distance between the object point and the corresponding image point on the image plane.

The coordinate conversion follows the model of a common pinhole camera where the origin of the camera coordinate system (world coordinates) is at the pinhole

PinholeCameraModel.png

The definition of the image plane and its coordinate systems (pixel and mm) is depicted in the following image

ImagePlane.png

Definition at line 44 of file mitkToFDistanceImageToSurfaceFilter.h.

Member Enumeration Documentation

◆ ReconstructionModeType

The ReconstructionModeType enum: Defines the reconstruction mode, if using no interpixeldistances and focal lenghts in pixel units or interpixeldistances and focal length in mm. The Kinect option defines a special reconstruction mode for the kinect.

Enumerator
WithOutInterPixelDistance 
WithInterPixelDistance 
Kinect 

Definition at line 82 of file mitkToFDistanceImageToSurfaceFilter.h.

Constructor & Destructor Documentation

◆ ToFDistanceImageToSurfaceFilter()

mitk::ToFDistanceImageToSurfaceFilter::ToFDistanceImageToSurfaceFilter ( )
protected

◆ ~ToFDistanceImageToSurfaceFilter()

mitk::ToFDistanceImageToSurfaceFilter::~ToFDistanceImageToSurfaceFilter ( )
overrideprotected

Standard destructor.

Definition at line 43 of file mitkToFDistanceImageToSurfaceFilter.cpp.

Member Function Documentation

◆ Clone()

Pointer mitk::ToFDistanceImageToSurfaceFilter::Clone ( ) const

◆ CreateOutputsForAllInputs()

void mitk::ToFDistanceImageToSurfaceFilter::CreateOutputsForAllInputs ( )
protected

Create an output for each input.

This Method sets the number of outputs to the number of inputs and creates missing outputs objects.

Warning
any additional outputs that exist before the method is called are deleted

Definition at line 310 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References mitk::SurfaceSource::GetOutput(), and mitk::SurfaceSource::MakeOutput().

Referenced by SetInput().

◆ GenerateData()

void mitk::ToFDistanceImageToSurfaceFilter::GenerateData ( )
overrideprotected

Method generating the output of this filter. Called in the updated process of the pipeline. This method generates the output of the ToFSurfaceSource: The generated surface of the 3d points.

Here we have to incorporate spacing and origin to allow processing of cropped/resampled images Usually origin will be [0, 0, 0] and spacing will be [1, 1, 1], but just in case the image is moved due to cropping or the spacing differes due to up- or downsampling.

Definition at line 88 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References mitk::eps, mitk::Equal(), mitk::ImageAccessorBase::GetData(), GetInput(), mitk::SurfaceSource::GetOutput(), mitk::ToFProcessingCommon::IndexToCartesianCoordinates(), mitk::ToFProcessingCommon::IndexToCartesianCoordinatesWithInterpixdist(), Kinect, mitk::ToFProcessingCommon::KinectIndexToCartesianCoordinates(), m_CameraIntrinsics, m_GenerateTriangularMesh, m_InterPixelDistance, m_IplScalarImage, m_ReconstructionMode, m_TextureIndex, m_TriangulationThreshold, m_VertexIdList, MITK_ERROR, WithInterPixelDistance, and WithOutInterPixelDistance.

◆ GenerateOutputInformation()

void mitk::ToFDistanceImageToSurfaceFilter::GenerateOutputInformation ( )
overrideprotected

◆ GetCameraIntrinsics()

virtual mitk::CameraIntrinsics::Pointer mitk::ToFDistanceImageToSurfaceFilter::GetCameraIntrinsics ( )
virtual

◆ GetGenerateTriangularMesh()

virtual bool mitk::ToFDistanceImageToSurfaceFilter::GetGenerateTriangularMesh ( )
virtual

◆ GetInput() [1/2]

mitk::Image * mitk::ToFDistanceImageToSurfaceFilter::GetInput ( void  )

Returns the input of this filter.

Definition at line 74 of file mitkToFDistanceImageToSurfaceFilter.cpp.

Referenced by GenerateData().

◆ GetInput() [2/2]

mitk::Image * mitk::ToFDistanceImageToSurfaceFilter::GetInput ( unsigned int  idx)

Returns the input with id idx of this filter.

Definition at line 79 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References mitkThrow.

◆ GetInterPixelDistance()

virtual ToFProcessingCommon::ToFPoint2D mitk::ToFDistanceImageToSurfaceFilter::GetInterPixelDistance ( )
virtual

◆ GetScalarImage()

IplImage * mitk::ToFDistanceImageToSurfaceFilter::GetScalarImage ( )

Set scalar image used as texture of the surface.

Returns
OpenCV image for texturing

Definition at line 335 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References m_IplScalarImage.

◆ GetTriangulationThreshold()

virtual double mitk::ToFDistanceImageToSurfaceFilter::GetTriangulationThreshold ( )
virtual

◆ GetVertexIdList()

virtual vtkSmartPointer<vtkIdList> mitk::ToFDistanceImageToSurfaceFilter::GetVertexIdList ( )
virtual

◆ itkGetEnumMacro()

mitk::ToFDistanceImageToSurfaceFilter::itkGetEnumMacro ( ReconstructionMode  ,
ReconstructionModeType   
)

◆ itkSetEnumMacro()

mitk::ToFDistanceImageToSurfaceFilter::itkSetEnumMacro ( ReconstructionMode  ,
ReconstructionModeType   
)

◆ mitkClassMacro()

mitk::ToFDistanceImageToSurfaceFilter::mitkClassMacro ( ToFDistanceImageToSurfaceFilter  ,
SurfaceSource   
)

◆ New()

static Pointer mitk::ToFDistanceImageToSurfaceFilter::New ( )
static

◆ SetCameraIntrinsics()

virtual void mitk::ToFDistanceImageToSurfaceFilter::SetCameraIntrinsics ( mitk::CameraIntrinsics::Pointer  _arg)
virtual

Referenced by SetInput().

◆ SetGenerateTriangularMesh()

virtual void mitk::ToFDistanceImageToSurfaceFilter::SetGenerateTriangularMesh ( bool  _arg)
virtual

◆ SetInput() [1/4]

void mitk::ToFDistanceImageToSurfaceFilter::SetInput ( mitk::Image distanceImage)
virtual

Sets the input of this filter.

Parameters
distanceImageinput is the distance image of e.g. a ToF camera

Definition at line 59 of file mitkToFDistanceImageToSurfaceFilter.cpp.

Referenced by SetInput().

◆ SetInput() [2/4]

void mitk::ToFDistanceImageToSurfaceFilter::SetInput ( Image distanceImage,
mitk::CameraIntrinsics::Pointer  cameraIntrinsics 
)
virtual

Sets the input of this filter and the intrinsic parameters.

Parameters
distanceImageinput is the distance image of e.g. a ToF camera

Definition at line 47 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References SetCameraIntrinsics(), and SetInput().

◆ SetInput() [3/4]

void mitk::ToFDistanceImageToSurfaceFilter::SetInput ( unsigned int  idx,
mitk::Image distanceImage 
)
virtual

Sets the input of this filter at idx.

Parameters
idxnumber of the current input
distanceImageinput is the distance image of e.g. a ToF camera

Definition at line 64 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References CreateOutputsForAllInputs().

◆ SetInput() [4/4]

void mitk::ToFDistanceImageToSurfaceFilter::SetInput ( unsigned int  idx,
Image distanceImage,
mitk::CameraIntrinsics::Pointer  cameraIntrinsics 
)
virtual

Sets the input of this filter at idx and the intrinsic parameters.

Parameters
idxnumber of the current input
distanceImageinput is the distance image of e.g. a ToF camera
cameraIntrinsicsThis is the camera model which holds parameters like focal length, pixel size, etc. which are needed for the reconstruction of the surface.

Definition at line 53 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References SetCameraIntrinsics(), and SetInput().

◆ SetInterPixelDistance()

virtual void mitk::ToFDistanceImageToSurfaceFilter::SetInterPixelDistance ( ToFProcessingCommon::ToFPoint2D  _arg)
virtual

◆ SetScalarImage()

void mitk::ToFDistanceImageToSurfaceFilter::SetScalarImage ( IplImage *  iplScalarImage)

Set scalar image used as texture of the surface.

Parameters
iplScalarImageOpenCV image for texturing

Definition at line 329 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References m_IplScalarImage.

◆ SetTextureImageHeight()

void mitk::ToFDistanceImageToSurfaceFilter::SetTextureImageHeight ( int  height)

Set height of the scalar image used for texturing the surface.

Parameters
heightheight (y-dimension) of the texture image

Definition at line 345 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References m_TextureImageHeight.

◆ SetTextureImageWidth()

void mitk::ToFDistanceImageToSurfaceFilter::SetTextureImageWidth ( int  width)

Set width of the scalar image used for texturing the surface.

Parameters
widthwidth (x-dimension) of the texture image

Definition at line 340 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References m_TextureImageWidth.

◆ SetTextureIndex()

virtual void mitk::ToFDistanceImageToSurfaceFilter::SetTextureIndex ( int  _arg)
virtual

◆ SetTriangulationThreshold()

void mitk::ToFDistanceImageToSurfaceFilter::SetTriangulationThreshold ( double  triangulationThreshold)

SetTriangulationThreshold Sets a triangulation threshold in order to remove unusually huge faces from the surface. If this value is set, the filter will check whether the distance between two neighboring vertices exceeds the triangulation threshold. If yes, there vertices will not be triangulated (connected with lines). The vertices will still be added to the surface, but only as single point (if they have no other neighbors).

Parameters
triangulationThresholdThe triangulationThreshold in mm. (not mm*mm!)
Note
vtkMath::Distance2BetweenPoints returns the squared distance between two points and hence we square m_TriangulationThreshold in order to save run-time.

Definition at line 351 of file mitkToFDistanceImageToSurfaceFilter.cpp.

References m_TriangulationThreshold.

◆ SetVertexIdList()

virtual void mitk::ToFDistanceImageToSurfaceFilter::SetVertexIdList ( vtkSmartPointer< vtkIdList >  _arg)
virtual

Member Data Documentation

◆ m_CameraIntrinsics

mitk::CameraIntrinsics::Pointer mitk::ToFDistanceImageToSurfaceFilter::m_CameraIntrinsics
protected

Specifies the intrinsic parameters.

Definition at line 172 of file mitkToFDistanceImageToSurfaceFilter.h.

Referenced by GenerateData(), and ToFDistanceImageToSurfaceFilter().

◆ m_GenerateTriangularMesh

bool mitk::ToFDistanceImageToSurfaceFilter::m_GenerateTriangularMesh
protected

Definition at line 179 of file mitkToFDistanceImageToSurfaceFilter.h.

Referenced by GenerateData().

◆ m_InterPixelDistance

ToFProcessingCommon::ToFPoint2D mitk::ToFDistanceImageToSurfaceFilter::m_InterPixelDistance
protected

distance in mm between two adjacent pixels on the ToF camera chip

Definition at line 176 of file mitkToFDistanceImageToSurfaceFilter.h.

Referenced by GenerateData(), and ToFDistanceImageToSurfaceFilter().

◆ m_IplScalarImage

IplImage* mitk::ToFDistanceImageToSurfaceFilter::m_IplScalarImage
protected

Scalar image used for surface texturing.

Definition at line 170 of file mitkToFDistanceImageToSurfaceFilter.h.

Referenced by GenerateData(), GetScalarImage(), and SetScalarImage().

◆ m_ReconstructionMode

ReconstructionModeType mitk::ToFDistanceImageToSurfaceFilter::m_ReconstructionMode
protected

The ReconstructionModeType enum: Defines the reconstruction mode, if using no interpixeldistances and focal lenghts in pixel units or interpixeldistances and focal length in mm. The Kinect option defines a special reconstruction mode for the kinect.

Definition at line 181 of file mitkToFDistanceImageToSurfaceFilter.h.

Referenced by GenerateData(), and ToFDistanceImageToSurfaceFilter().

◆ m_TextureImageHeight

int mitk::ToFDistanceImageToSurfaceFilter::m_TextureImageHeight
protected

Height (y-dimension) of the texture image.

Definition at line 175 of file mitkToFDistanceImageToSurfaceFilter.h.

Referenced by SetTextureImageHeight().

◆ m_TextureImageWidth

int mitk::ToFDistanceImageToSurfaceFilter::m_TextureImageWidth
protected

Width (x-dimension) of the texture image.

Definition at line 174 of file mitkToFDistanceImageToSurfaceFilter.h.

Referenced by SetTextureImageWidth().

◆ m_TextureIndex

int mitk::ToFDistanceImageToSurfaceFilter::m_TextureIndex
protected

Index of the input used as texture image when no scalar image was set via SetIplScalarImage(). 0 = Distance, 1 = Amplitude, 2 = Intensity.

Definition at line 178 of file mitkToFDistanceImageToSurfaceFilter.h.

Referenced by GenerateData().

◆ m_TriangulationThreshold

double mitk::ToFDistanceImageToSurfaceFilter::m_TriangulationThreshold
protected

◆ m_VertexIdList

vtkSmartPointer<vtkIdList> mitk::ToFDistanceImageToSurfaceFilter::m_VertexIdList
protected

Make a vtkIdList to save the ID's of the polyData corresponding to the image pixel ID's. This can be accessed after generate data to obtain the mapping.

Definition at line 183 of file mitkToFDistanceImageToSurfaceFilter.h.

Referenced by GenerateData().


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