Skip to main content Link Search Menu Expand Document (external link)

@undistort attribute

:electric_plug: dp.kinect3 dp.oak
:information_source: signature
undistort INT
:house: values
0
off default
1
on
:bulb: examples
@undistort 1

Undistort the depth, color, infrared, and playermap output. The undistortion and cropping of unwanted/invalid pixels is controlled with @undistortscale.

All lenses have distortion. They are not perfect pinhole cameras. Usually, the sensor’s image can be used with no corrections. Some special cases need the image to be undistorted using this feature.

:memo: Plugins always undistort real-world xyz locations of points in the pointcloud jit matrix. However, the uv coordinates (i.e. pixel) at which the xyz pointcloud data is stored in memory are not undistorted.

In practice, distorted uv coordinates are almost never a concern. Consumers of pointcloud data are interested in the xyz values, not the uv coordinates which store them. Simply enable @align and not @undistort to align the depth/color and the pointcloud xyz.

Enabling both @align 2 @undistort 1 and sending colormap and pointcloud jit matrices to (jit.gl.mesh) will not visually align. A real-world xyz location will have different uv (pixel) coordinates in the pointcloud and colormap matrices. The aligned pointcloud uv pixel coordinate will not correspond to the aligned+undistorted colormap uv pixel coordinate.