28 ToFScalarType imageY_in_pX = imageY * (focalLengthX / focalLengthY);
31 ToFScalarType d_in_pX = sqrt(imageX*imageX + imageY_in_pX*imageY_in_pX + focalLengthX*focalLengthX);
33 cartesianCoordinates[0] = distance * imageX / d_in_pX;
34 cartesianCoordinates[1] = distance * imageY_in_pX / d_in_pX;
35 cartesianCoordinates[2] = distance * focalLengthX / d_in_pX;
37 return cartesianCoordinates;
46 cartesianCoordinates[0] = distance * (i - principalPointX) / focalLengthX;
47 cartesianCoordinates[1] = distance * (j - principalPointY) / focalLengthY;
48 cartesianCoordinates[2] = distance;
50 return cartesianCoordinates;
56 indexCoordinatesAndDistanceValue[0] = ((cartesianPointX*focalLengthX)/cartesianPointZ) + principalPointX;
57 indexCoordinatesAndDistanceValue[1] = ((cartesianPointY*focalLengthY)/cartesianPointZ) + principalPointY;
59 if (calculateDistance)
61 indexCoordinatesAndDistanceValue[2] = cartesianPointZ;
65 indexCoordinatesAndDistanceValue[2] = 0.0;
67 return indexCoordinatesAndDistanceValue;
77 ToFScalarType imageX = (( i - principalPointX ) * interPixelDistanceX);
78 ToFScalarType imageY = (( j - principalPointY ) * interPixelDistanceY);
81 ToFScalarType d = sqrt(imageX*imageX + imageY*imageY + focalLength*focalLength);
83 cartesianCoordinates[0] = (distance)*imageX / d;
84 cartesianCoordinates[1] = (distance)*imageY / d;
85 cartesianCoordinates[2] = ((distance*focalLength) / d);
87 return cartesianCoordinates;
98 ToFScalarType imageX = cartesianPointX*focalLengthX/cartesianPointZ;
99 ToFScalarType imageY = cartesianPointY*focalLengthY/cartesianPointZ;
101 indexCoordinatesAndDistanceValue[0] = imageX + principalPointX;
102 indexCoordinatesAndDistanceValue[1] = imageY + principalPointY;
108 ToFScalarType imageY_in_pX = imageY * focalLengthX/focalLengthY;
111 ToFScalarType d_in_pX = sqrt(imageX*imageX + imageY_in_pX*imageY_in_pX + focalLengthX*focalLengthX);
113 if (calculateDistance)
115 indexCoordinatesAndDistanceValue[2] = d_in_pX*(cartesianPointZ) / focalLengthX;
119 indexCoordinatesAndDistanceValue[2] = 0.0;
121 return indexCoordinatesAndDistanceValue;
130 ToFScalarType imageX = cartesianPointX*focalLength/cartesianPointZ;
131 ToFScalarType imageY = cartesianPointY*focalLength/cartesianPointZ;
133 indexCoordinatesAndDistanceValue[0] = imageX/interPixelDistanceX + principalPointX;
134 indexCoordinatesAndDistanceValue[1] = imageY/interPixelDistanceY + principalPointY;
136 ToFScalarType d = sqrt(imageX*imageX + imageY*imageY + focalLength*focalLength);
138 if (calculateDistance)
140 indexCoordinatesAndDistanceValue[2] = d*(cartesianPointZ) / focalLength;
144 indexCoordinatesAndDistanceValue[2] = 0.0;
146 return indexCoordinatesAndDistanceValue;
153 cartesianCoordinates[0] = distance * (continuousIndex[0] - principalPointX) / focalLengthX;
154 cartesianCoordinates[1] = distance * (continuousIndex[1] - principalPointY) / focalLengthY;
155 cartesianCoordinates[2] = distance;
157 return cartesianCoordinates;
162 ToFScalarType viewAngle = 180*(atan2(intrinsics->GetPrincipalPointX(),intrinsics->GetFocalLengthX()) + atan2((dimX-intrinsics->GetPrincipalPointX()),intrinsics->GetFocalLengthX()))/vnl_math::pi;
static ToFPoint3D CartesianToKinectIndexCoordinates(ToFScalarType cartesianPointX, ToFScalarType cartesianPointY, ToFScalarType cartesianPointZ, ToFScalarType focalLengthX, ToFScalarType focalLengthY, ToFScalarType principalPointX, ToFScalarType principalPointY, bool calculateDistance=true)
CartesianCoordinatesToKinectIndexCoordinates Transform a 3D world point back to distance image pixel ...
static ToFPoint3D CartesianToIndexCoordinatesWithInterpixdist(ToFScalarType cartesianPointX, ToFScalarType cartesianPointY, ToFScalarType cartesianPointZ, ToFScalarType focalLength, ToFScalarType interPixelDistanceX, ToFScalarType interPixelDistanceY, ToFScalarType principalPointX, ToFScalarType principalPointY, bool calculateDistance=true)
Convert cartesian coordinates to index based distances.
static ToFPoint3D CartesianToIndexCoordinates(ToFScalarType cartesianPointX, ToFScalarType cartesianPointY, ToFScalarType cartesianPointZ, ToFScalarType focalLengthX, ToFScalarType focalLengthY, ToFScalarType principalPointX, ToFScalarType principalPointY, bool calculateDistance=true)
Convert cartesian coordinates to index based distances.
static ToFPoint3D IndexToCartesianCoordinates(unsigned int i, unsigned int j, ToFScalarType distance, ToFScalarType focalLengthX, ToFScalarType focalLengthY, ToFScalarType principalPointX, ToFScalarType principalPointY)
Convert index based distances to cartesian coordinates.
static ToFProcessingCommon::ToFPoint3D ContinuousKinectIndexToCartesianCoordinates(mitk::Point2D continuousIndex, ToFScalarType distance, ToFScalarType focalLengthX, ToFScalarType focalLengthY, ToFScalarType principalPointX, ToFScalarType principalPointY)
ContinuousKinectIndexToCartesianCoordinates This method is escpially meant for reconstructing a Kinec...
static ToFScalarType CalculateViewAngle(mitk::CameraIntrinsics::Pointer intrinsics, unsigned int dimX)
Calculates the horizontal view angle of the camera with the given intrinsics.
static ToFPoint3D IndexToCartesianCoordinatesWithInterpixdist(unsigned int i, unsigned int j, ToFScalarType distance, ToFScalarType focalLength, ToFScalarType interPixelDistanceX, ToFScalarType interPixelDistanceY, ToFScalarType principalPointX, ToFScalarType principalPointY)
Convert index based distances to cartesian coordinates.
static ToFProcessingCommon::ToFPoint3D KinectIndexToCartesianCoordinates(unsigned int i, unsigned int j, ToFScalarType distance, ToFScalarType focalLengthX, ToFScalarType focalLengthY, ToFScalarType principalPointX, ToFScalarType principalPointY)
KinectIndexToCartesianCoordinates Convert a pixel (i,j) with value d to a 3D world point....
itk::Point< ToFScalarType, 3 > ToFPoint3D