## PsychKinectCore(‘GetDepthImage’)

##### Psychtoolbox>PsychKinectCore.{mex*} subfunction

[imageOrPtr, width, height, components, extFormat] = PsychKinect(‘GetDepthImage’, kinectPtr [, format=0][, returnTexturePtr=0]);

Return the depth image data for the frame fetched via ‘GrabFrame’.

If ‘returnTexturePtr’ is zero (default), a matrix is returned for processing in

Matlab/Octave.

If ‘returnTexturePtr’ is one, a memory pointer to a buffer is returned.

‘format’ defines the type of returned data:

0 = Return raw disparity image as 2D double matrix with integral values.

1 = Return depths z-image as 2D double matrix with z-distance in meters.

2 = Return a vertex buffer with (x,y,z) vertices that define a 3D surface mesh

and (R,G,B) color values for each vertex. -> [x,y,z,r,g,b] per element.

3 = Return a vertex buffer with (x,y,z) vertices that define a 3D surface mesh.

and (tx,ty) texture coordinates for vertices -> [x,y,z,tx,ty] per element.

4/5 = Return a vertex buffer with (xi,yi,z) vertices that define sensor pixel

position (xi,yi) of depths sensor and reconstructed z value. This needs

to be post-processed in a vertex shader for speedups.

6/7 = Return a vertex buffer with vertex id’s uniquely identifying each sensor

position of depths sensor and raw sensor value at that location. The whole

3D reconstructin is done on the GPU in a vertex shader for maximum speed.

8 = Return a uint16 buffer with a transposed copy of the raw depth buffer.

This is the most compact and efficient way to return raw data to you. The

transposed format is again for efficiency reasons. You need to transpose()

the returned 2D data matrix yourself.

Alternatively return a memory pointer to the 16 bit unsigned integer raw

depth buffer. CAUTION: The pointer becomes invalid as soon as the

current buffer is released via ‘ReleaseFrame’! This is the fast-path.

###See also: