13 #ifndef MITKTOFPROCESSINGCOMMON_H 14 #define MITKTOFPROCESSINGCOMMON_H 16 #include <MitkToFProcessingExports.h> 19 #include <vnl/vnl_math.h> 58 static ToFPoint3D IndexToCartesianCoordinates(
unsigned int i,
unsigned int j, ToFScalarType distance,
59 ToFScalarType focalLengthX, ToFScalarType focalLengthY, ToFScalarType principalPointX, ToFScalarType principalPointY);
71 ToFPoint2D focalLength, ToFPoint2D principalPoint)
73 return IndexToCartesianCoordinates(i,j,distance,focalLength[0],focalLength[1],principalPoint[0],principalPoint[1]);
85 ToFPoint2D focalLength, ToFPoint2D principalPoint)
87 return IndexToCartesianCoordinates(index[0],index[1],distance,focalLength[0],focalLength[1],principalPoint[0], principalPoint[1]);
99 ToFScalarType focalLength[2], ToFScalarType principalPoint[2])
101 return IndexToCartesianCoordinates(i,j,distance,focalLength[0],focalLength[1],principalPoint[0],principalPoint[1]);
117 static ToFPoint3D IndexToCartesianCoordinatesWithInterpixdist(
unsigned int i,
unsigned int j, ToFScalarType distance, ToFScalarType focalLength,
118 ToFScalarType interPixelDistanceX, ToFScalarType interPixelDistanceY, ToFScalarType principalPointX, ToFScalarType principalPointY);
131 ToFPoint2D interPixelDistance, ToFPoint2D principalPoint)
133 return IndexToCartesianCoordinatesWithInterpixdist(i,j,distance,focalLength,interPixelDistance[0],interPixelDistance[1],principalPoint[0],principalPoint[1]);
145 ToFPoint2D interPixelDistance, ToFPoint2D principalPoint)
147 return IndexToCartesianCoordinatesWithInterpixdist(index[0],index[1],distance,focalLength,interPixelDistance[0], interPixelDistance[1],principalPoint[0], principalPoint[1]);
160 ToFScalarType interPixelDistance[2], ToFScalarType principalPoint[2])
162 return IndexToCartesianCoordinatesWithInterpixdist(i,j,distance,focalLength,interPixelDistance[0],interPixelDistance[1],principalPoint[0],principalPoint[1]);
178 static ToFPoint3D CartesianToIndexCoordinates(ToFScalarType cartesianPointX, ToFScalarType cartesianPointY,ToFScalarType cartesianPointZ,
179 ToFScalarType focalLengthX, ToFScalarType focalLengthY,
180 ToFScalarType principalPointX, ToFScalarType principalPointY,
bool calculateDistance=
true);
191 ToFScalarType principalPoint[2],
bool calculateDistance=
true)
193 return CartesianToIndexCoordinates(cartesianPoint[0],cartesianPoint[1],cartesianPoint[2],focalLength[0], focalLength[1],
194 principalPoint[0],principalPoint[1],calculateDistance);
205 ToFPoint2D principalPoint,
bool calculateDistance=
true)
207 return CartesianToIndexCoordinates(cartesianPoint[0],cartesianPoint[1],cartesianPoint[2],focalLength[0], focalLength[1],
208 principalPoint[0],principalPoint[1],calculateDistance);
225 static ToFPoint3D CartesianToIndexCoordinatesWithInterpixdist(ToFScalarType cartesianPointX, ToFScalarType cartesianPointY,ToFScalarType cartesianPointZ,
226 ToFScalarType focalLength, ToFScalarType interPixelDistanceX, ToFScalarType interPixelDistanceY,
227 ToFScalarType principalPointX, ToFScalarType principalPointY,
bool calculateDistance=
true);
239 ToFScalarType interPixelDistance[2], ToFScalarType principalPoint[2],
240 bool calculateDistance=
true)
242 return CartesianToIndexCoordinatesWithInterpixdist(cartesianPoint[0],cartesianPoint[1],cartesianPoint[2],focalLength,
243 interPixelDistance[0],interPixelDistance[1],principalPoint[0],principalPoint[1],calculateDistance);
255 ToFPoint2D interPixelDistance, ToFPoint2D principalPoint,
bool calculateDistance=
true)
257 return CartesianToIndexCoordinatesWithInterpixdist(cartesianPoint[0],cartesianPoint[1],cartesianPoint[2],focalLength,
258 interPixelDistance[0],interPixelDistance[1],principalPoint[0],principalPoint[1],calculateDistance);
274 static ToFProcessingCommon::ToFPoint3D KinectIndexToCartesianCoordinates(
unsigned int i,
unsigned int j, ToFScalarType distance, ToFScalarType focalLengthX, ToFScalarType focalLengthY, ToFScalarType principalPointX, ToFScalarType principalPointY);
277 ToFScalarType focalLength[2], ToFScalarType principalPoint[2])
279 return KinectIndexToCartesianCoordinates(i,j,distance,focalLength[0],focalLength[1],principalPoint[0],principalPoint[1]);
283 ToFPoint2D focalLength, ToFPoint2D principalPoint)
285 return KinectIndexToCartesianCoordinates(i,j,distance,focalLength[0],focalLength[1],principalPoint[0],principalPoint[1]);
290 return KinectIndexToCartesianCoordinates(index[0],index[1],distance,focalLength[0],focalLength[1],principalPoint[0], principalPoint[1]);
306 static ToFPoint3D CartesianToKinectIndexCoordinates(ToFScalarType cartesianPointX, ToFScalarType cartesianPointY,
307 ToFScalarType cartesianPointZ, ToFScalarType focalLengthX,
308 ToFScalarType focalLengthY, ToFScalarType principalPointX,
309 ToFScalarType principalPointY,
bool calculateDistance=
true);
313 return CartesianToKinectIndexCoordinates( cartesianPoint[0], cartesianPoint[1], cartesianPoint[2], focalLength[0], focalLength[1], principalPoint[0], principalPoint[1], calculateDistance);
329 static ToFProcessingCommon::ToFPoint3D ContinuousKinectIndexToCartesianCoordinates(
mitk::Point2D continuousIndex, ToFScalarType distance, ToFScalarType focalLengthX, ToFScalarType focalLengthY, ToFScalarType principalPointX, ToFScalarType principalPointY);
338 static ToFScalarType CalculateViewAngle(mitk::CameraIntrinsics::Pointer intrinsics,
unsigned int dimX);
itk::Vector< ToFScalarType, 3 > ToFVector3D
static ToFPoint3D IndexToCartesianCoordinates(unsigned int i, unsigned int j, ToFScalarType distance, ToFPoint2D focalLength, ToFPoint2D principalPoint)
Convert index based distances to cartesian coordinates.
static ToFPoint3D IndexToCartesianCoordinatesWithInterpixdist(itk::Index< 3 > index, ToFScalarType distance, ToFScalarType focalLength, ToFPoint2D interPixelDistance, ToFPoint2D principalPoint)
Convert index based distances to cartesian coordinates.
DataCollection - Class to facilitate loading/accessing structured data.
static ToFPoint3D KinectIndexToCartesianCoordinates(unsigned int i, unsigned int j, ToFScalarType distance, ToFScalarType focalLength[2], ToFScalarType principalPoint[2])
KinectIndexToCartesianCoordinates Convert a pixel (i,j) with value d to a 3D world point...
static ToFPoint3D KinectIndexToCartesianCoordinates(itk::Index< 3 > index, ToFScalarType distance, ToFPoint2D focalLength, ToFPoint2D principalPoint)
KinectIndexToCartesianCoordinates Convert a pixel (i,j) with value d to a 3D world point...
static ToFPoint3D IndexToCartesianCoordinates(unsigned int i, unsigned int j, ToFScalarType distance, ToFScalarType focalLength[2], ToFScalarType principalPoint[2])
Convenience method to convert index based distances to cartesian coordinates using array as input...
itk::Point< ToFScalarType, 2 > ToFPoint2D
itk::Point< ToFScalarType, 3 > ToFPoint3D
static ToFPoint3D CartesianToIndexCoordinates(ToFScalarType cartesianPoint[3], ToFScalarType focalLength[2], ToFScalarType principalPoint[2], bool calculateDistance=true)
Convenience method to convert cartesian coordinates to index based distances using arrays...
Helper class providing functions which are useful for multiple usage.
static ToFPoint3D CartesianToIndexCoordinatesWithInterpixdist(ToFPoint3D cartesianPoint, ToFScalarType focalLength, ToFPoint2D interPixelDistance, ToFPoint2D principalPoint, bool calculateDistance=true)
Convert cartesian coordinates to index based distances.
static ToFPoint3D IndexToCartesianCoordinatesWithInterpixdist(unsigned int i, unsigned int j, ToFScalarType distance, ToFScalarType focalLength, ToFScalarType interPixelDistance[2], ToFScalarType principalPoint[2])
Convenience method to convert index based distances to cartesian coordinates using array as input...
static ToFPoint3D KinectIndexToCartesianCoordinates(unsigned int i, unsigned int j, ToFScalarType distance, ToFPoint2D focalLength, ToFPoint2D principalPoint)
KinectIndexToCartesianCoordinates Convert a pixel (i,j) with value d to a 3D world point...
itk::Vector< ToFScalarType, 2 > ToFVector2D
static ToFPoint3D IndexToCartesianCoordinatesWithInterpixdist(unsigned int i, unsigned int j, ToFScalarType distance, ToFScalarType focalLength, ToFPoint2D interPixelDistance, ToFPoint2D principalPoint)
Convert index based distances to cartesian coordinates.
static ToFProcessingCommon::ToFPoint3D CartesianToKinectIndexCoordinates(ToFPoint3D cartesianPoint, ToFPoint2D focalLength, ToFPoint2D principalPoint, bool calculateDistance=true)
CartesianCoordinatesToKinectIndexCoordinates Transform a 3D world point back to distance image pixel ...
static ToFPoint3D IndexToCartesianCoordinates(itk::Index< 3 > index, ToFScalarType distance, ToFPoint2D focalLength, ToFPoint2D principalPoint)
Convert index based distances to cartesian coordinates.
static ToFPoint3D CartesianToIndexCoordinatesWithInterpixdist(ToFScalarType cartesianPoint[3], ToFScalarType focalLength, ToFScalarType interPixelDistance[2], ToFScalarType principalPoint[2], bool calculateDistance=true)
Convenience method to convert cartesian coordinates to index based distances using arrays...
static ToFPoint3D CartesianToIndexCoordinates(ToFPoint3D cartesianPoint, ToFPoint2D focalLength, ToFPoint2D principalPoint, bool calculateDistance=true)
Convert cartesian coordinates to index based distances.