Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkToFDistanceImageToSurfaceFilter.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 #ifndef __mitkToFDistanceImageToSurfaceFilter_h
13 #define __mitkToFDistanceImageToSurfaceFilter_h
14 
15 
16 #include <mitkImage.h>
17 #include <mitkSurfaceSource.h>
18 #include <MitkToFProcessingExports.h>
20 #include <mitkCameraIntrinsics.h>
21 #include "mitkCameraIntrinsics.h"
22 #include <mitkPointSet.h>
23 
24 #include <vtkSmartPointer.h>
25 #include <vtkIdList.h>
26 
27 namespace mitk
28 {
44  class MITKTOFPROCESSING_EXPORT ToFDistanceImageToSurfaceFilter : public SurfaceSource
45  {
46  public:
47 
49  itkFactorylessNewMacro(Self);
50  itkCloneMacro(Self);
51  itkSetMacro(CameraIntrinsics, mitk::CameraIntrinsics::Pointer);
52  itkGetMacro(CameraIntrinsics, mitk::CameraIntrinsics::Pointer);
53  itkSetMacro(InterPixelDistance,ToFProcessingCommon::ToFPoint2D);
54  itkGetMacro(InterPixelDistance,ToFProcessingCommon::ToFPoint2D);
55  itkSetMacro(TextureIndex,int);
56 
69  void SetTriangulationThreshold( double triangulationThreshold );
70  itkGetMacro(TriangulationThreshold, double);
71 
72  itkSetMacro(VertexIdList, vtkSmartPointer<vtkIdList>);
73  itkGetMacro(VertexIdList, vtkSmartPointer<vtkIdList>);
74 
75  itkSetMacro(GenerateTriangularMesh,bool);
76  itkGetMacro(GenerateTriangularMesh,bool);
77 
78 
82  enum ReconstructionModeType{ WithOutInterPixelDistance = 1, WithInterPixelDistance = 2, Kinect = 3};
83 
84  itkSetEnumMacro(ReconstructionMode,ReconstructionModeType);
85  itkGetEnumMacro(ReconstructionMode,ReconstructionModeType);
90  void SetScalarImage(IplImage* iplScalarImage);
95  IplImage* GetScalarImage();
100  void SetTextureImageWidth(int width);
105  void SetTextureImageHeight(int height);
106 
107  using itk::ProcessObject::SetInput;
108 
113  virtual void SetInput( Image* distanceImage);
114 
119  virtual void SetInput( Image* distanceImage, mitk::CameraIntrinsics::Pointer cameraIntrinsics );
120 
126  virtual void SetInput(unsigned int idx, Image* distanceImage);
127 
134  virtual void SetInput( unsigned int idx, Image* distanceImage, mitk::CameraIntrinsics::Pointer cameraIntrinsics );
135 
139  Image* GetInput();
140 
144  Image* GetInput(unsigned int idx);
145 
146  protected:
155  void GenerateOutputInformation() override;
160  void GenerateData() override;
168  void CreateOutputsForAllInputs();
169 
170  IplImage* m_IplScalarImage;
171 
172  mitk::CameraIntrinsics::Pointer m_CameraIntrinsics;
173 
177 
180 
182 
183  vtkSmartPointer<vtkIdList> m_VertexIdList;
184 
186 
187  };
188 } //END mitk namespace
189 #endif
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.
Superclass of all classes generating surfaces (instances of class Surface) as output.
class representing camera intrinsics and related functions
int m_TextureImageHeight
Height (y-dimension) of the texture image.
ToFProcessingCommon::ToFPoint2D m_InterPixelDistance
distance in mm between two adjacent pixels on the ToF camera chip
Superclass of all classes generating some kind of mitk::BaseData.
DataCollection - Class to facilitate loading/accessing structured data.
ReconstructionModeType
The ReconstructionModeType enum: Defines the reconstruction mode, if using no interpixeldistances and...
ReconstructionModeType m_ReconstructionMode
The ReconstructionModeType enum: Defines the reconstruction mode, if using no interpixeldistances and...
mitk::CameraIntrinsics::Pointer m_CameraIntrinsics
Specifies the intrinsic parameters.
int m_TextureImageWidth
Width (x-dimension) of the texture image.
#define mitkClassMacro(className, SuperClassName)
Definition: mitkCommon.h:40
itk::Point< ToFScalarType, 2 > ToFPoint2D
Image class for storing images.
Definition: mitkImage.h:72
Converts a Time-of-Flight (ToF) distance image to a 3D surface using the pinhole camera model for coo...
IplImage * m_IplScalarImage
Scalar image used for surface texturing.
vtkSmartPointer< vtkIdList > m_VertexIdList
Make a vtkIdList to save the ID&#39;s of the polyData corresponding to the image pixel ID&#39;s...