Package boofcv.alg.sfm
Class DepthSparse3D<T extends ImageGray<T>>
java.lang.Object
boofcv.alg.sfm.DepthSparse3D<T>
- Direct Known Subclasses:
DepthSparse3D.F32
,DepthSparse3D.I
Computes the 3D coordinate a point in a visual camera given a depth image. The visual camera is a standard camera
while the depth camera contains the depth (value along z-axis) of objects inside its field of view. The
Kinect (structured light) and flash ladar (time of flight) are examples of sensors which could use this class.
The z-axis is defined to be pointing straight out of the visual camera and both depth and visual cameras are
assumed to be parallel with identical pointing vectors for the z-axis.
A mapping is provided for converting between pixels in the visual camera and the depth camera. This mapping
is assumed to be fixed with time.
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
configure
(LensDistortionNarrowFOV model, PixelTransform<Point2D_F32> visualToDepth) Configures intrinsic camera parametersThe found 3D coordinate of the point in the visual camera coordinate system.protected abstract double
lookupDepth
(int depthX, int depthY) Internal function which looks up the pixel's depth.boolean
process
(int x, int y) Given a pixel coordinate in the visual camera, compute the 3D coordinate of that point.void
setDepthImage
(T depthImage) Sets the depth image.
-
Field Details
-
depthImage
-
-
Constructor Details
-
DepthSparse3D
protected DepthSparse3D(double depthScale) Configures parameters- Parameters:
depthScale
- Used to change units found in the depth image.
-
-
Method Details
-
configure
Configures intrinsic camera parameters- Parameters:
model
- Model for narrow FOV camerasvisualToDepth
- Transform from visual to depth camera pixel coordinate systems.
-
setDepthImage
Sets the depth image. A reference is saved internally.- Parameters:
depthImage
- Image containing depth information.
-
process
public boolean process(int x, int y) Given a pixel coordinate in the visual camera, compute the 3D coordinate of that point.- Parameters:
x
- x-coordinate of point in visual cameray
- y-coordinate of point in visual camera- Returns:
- true if a 3D point could be computed and false if not
-
getWorldPt
The found 3D coordinate of the point in the visual camera coordinate system. Is only valid whenprocess(int, int)
returns true.- Returns:
- 3D coordinate of point in visual camera coordinate system
-
lookupDepth
protected abstract double lookupDepth(int depthX, int depthY) Internal function which looks up the pixel's depth. Depth is defined as the value of the z-coordinate which is pointing out of the camera. If there is no depth measurement at this location return 0.- Parameters:
depthX
- x-coordinate of pixel in depth cameradepthY
- y-coordinate of pixel in depth camera- Returns:
- depth at the specified coordinate
-