Medical Imaging Interaction Toolkit
2018.4.99-389bf124
Medical Imaging Interaction Toolkit
|
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>
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... | |
![]() | |
typedef SurfaceSource | Self |
typedef BaseDataSource | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef Surface | OutputType |
![]() | |
typedef BaseDataSource | Self |
typedef itk::ProcessObject | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
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... | |
Image * | GetInput () |
Returns the input of this filter. More... | |
Image * | GetInput (unsigned int idx) |
Returns the input with id idx of this filter. More... | |
![]() | |
virtual std::vector< std::string > | GetClassHierarchy () const override |
virtual const char * | GetClassName () const |
Pointer | Clone () const |
OutputType * | GetOutput () |
const OutputType * | GetOutput () const |
OutputType * | GetOutput (DataObjectPointerArraySizeType idx) |
const OutputType * | GetOutput (DataObjectPointerArraySizeType idx) const |
itk::DataObject::Pointer | MakeOutput (DataObjectPointerArraySizeType idx) override |
itk::DataObject::Pointer | MakeOutput (const DataObjectIdentifierType &name) override |
![]() | |
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 Pointer | New () |
![]() | |
static const char * | GetStaticNameOfClass () |
static Pointer | New () |
![]() | |
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... | |
![]() | |
SurfaceSource () | |
~SurfaceSource () override | |
![]() | |
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 Pointer | New () |
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
The definition of the image plane and its coordinate systems (pixel and mm) is depicted in the following image
Definition at line 44 of file mitkToFDistanceImageToSurfaceFilter.h.
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.
|
protected |
Standard constructor.
Definition at line 31 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References m_CameraIntrinsics, m_InterPixelDistance, m_ReconstructionMode, mitk::CameraIntrinsics::New(), and WithInterPixelDistance.
|
overrideprotected |
Standard destructor.
Definition at line 43 of file mitkToFDistanceImageToSurfaceFilter.cpp.
Pointer mitk::ToFDistanceImageToSurfaceFilter::Clone | ( | ) | const |
|
protected |
Create an output for each input.
This Method sets the number of outputs to the number of inputs and creates missing outputs objects.
Definition at line 310 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References mitk::SurfaceSource::GetOutput(), and mitk::SurfaceSource::MakeOutput().
Referenced by SetInput().
|
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.
|
overrideprotected |
Definition at line 322 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References mitk::SurfaceSource::GetOutput().
|
virtual |
|
virtual |
mitk::Image * mitk::ToFDistanceImageToSurfaceFilter::GetInput | ( | void | ) |
Returns the input of this filter.
Definition at line 74 of file mitkToFDistanceImageToSurfaceFilter.cpp.
Referenced by GenerateData().
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.
|
virtual |
IplImage * mitk::ToFDistanceImageToSurfaceFilter::GetScalarImage | ( | ) |
Set scalar image used as texture of the surface.
Definition at line 335 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References m_IplScalarImage.
|
virtual |
|
virtual |
mitk::ToFDistanceImageToSurfaceFilter::itkGetEnumMacro | ( | ReconstructionMode | , |
ReconstructionModeType | |||
) |
mitk::ToFDistanceImageToSurfaceFilter::itkSetEnumMacro | ( | ReconstructionMode | , |
ReconstructionModeType | |||
) |
mitk::ToFDistanceImageToSurfaceFilter::mitkClassMacro | ( | ToFDistanceImageToSurfaceFilter | , |
SurfaceSource | |||
) |
|
static |
|
virtual |
Referenced by SetInput().
|
virtual |
|
virtual |
Sets the input of this filter.
distanceImage | input is the distance image of e.g. a ToF camera |
Definition at line 59 of file mitkToFDistanceImageToSurfaceFilter.cpp.
Referenced by SetInput().
|
virtual |
Sets the input of this filter and the intrinsic parameters.
distanceImage | input is the distance image of e.g. a ToF camera |
Definition at line 47 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References SetCameraIntrinsics(), and SetInput().
|
virtual |
Sets the input of this filter at idx.
idx | number of the current input |
distanceImage | input is the distance image of e.g. a ToF camera |
Definition at line 64 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References CreateOutputsForAllInputs().
|
virtual |
Sets the input of this filter at idx and the intrinsic parameters.
idx | number of the current input |
distanceImage | input is the distance image of e.g. a ToF camera |
cameraIntrinsics | This 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().
|
virtual |
void mitk::ToFDistanceImageToSurfaceFilter::SetScalarImage | ( | IplImage * | iplScalarImage | ) |
Set scalar image used as texture of the surface.
iplScalarImage | OpenCV image for texturing |
Definition at line 329 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References m_IplScalarImage.
void mitk::ToFDistanceImageToSurfaceFilter::SetTextureImageHeight | ( | int | height | ) |
Set height of the scalar image used for texturing the surface.
height | height (y-dimension) of the texture image |
Definition at line 345 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References m_TextureImageHeight.
void mitk::ToFDistanceImageToSurfaceFilter::SetTextureImageWidth | ( | int | width | ) |
Set width of the scalar image used for texturing the surface.
width | width (x-dimension) of the texture image |
Definition at line 340 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References m_TextureImageWidth.
|
virtual |
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).
triangulationThreshold | The triangulationThreshold in mm. (not mm*mm!) |
Definition at line 351 of file mitkToFDistanceImageToSurfaceFilter.cpp.
References m_TriangulationThreshold.
|
virtual |
|
protected |
Specifies the intrinsic parameters.
Definition at line 172 of file mitkToFDistanceImageToSurfaceFilter.h.
Referenced by GenerateData(), and ToFDistanceImageToSurfaceFilter().
|
protected |
Definition at line 179 of file mitkToFDistanceImageToSurfaceFilter.h.
Referenced by GenerateData().
|
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().
|
protected |
Scalar image used for surface texturing.
Definition at line 170 of file mitkToFDistanceImageToSurfaceFilter.h.
Referenced by GenerateData(), GetScalarImage(), and SetScalarImage().
|
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().
|
protected |
Height (y-dimension) of the texture image.
Definition at line 175 of file mitkToFDistanceImageToSurfaceFilter.h.
Referenced by SetTextureImageHeight().
|
protected |
Width (x-dimension) of the texture image.
Definition at line 174 of file mitkToFDistanceImageToSurfaceFilter.h.
Referenced by SetTextureImageWidth().
|
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().
|
protected |
Definition at line 185 of file mitkToFDistanceImageToSurfaceFilter.h.
Referenced by GenerateData(), and SetTriangulationThreshold().
|
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().