File Exchange

image thumbnail

Kinect Depth Normalization

version 1.0 (127 KB) by

Fills in '0' depth value in kinect depth image with statistical mode of surrounding 25 values

8 Downloads

Updated

View License

The kinect depth image has pixels with values equal to the calculated depth of object/surface in view. However, areas that absorb or scatter the kinect IR (like glossy surfaces or sharp edges) are filled with zero pixel value (indicating non-calculated depth). These regions with the missing information, represented by zero values, need to be filled prior to using the depth images. This filling process is done by replacing the zero value pixels with the statistical mode of the surrounding 25 pixels. Using a statistical mode returns sharper edges than using statistical mean values, since mode only inserts the maximum occurring value in the surrounding 25 pixels to the centre pixel.

Usage: [Q,R]=Kinect_DepthNormalization(depthImage)

Function Input: Kinect depth image (16-bit png)

Function Output: depth image with zero valued replaced , Number of zero pixels detected in the image.

Note:
The code is a matlab implementation of the algorithm used by Karl Sanford at Code Project (http://www.codeproject.com/Articles/317974/KinectDepthSmoothing)

Comments and Ratings (3)

Please add the sample usage to the script. Thanks otherwise !!

Atif Anwer

Sample usage:

depthImage=imread(sample_depth_image);
[filledImage,zeroPixels] = Kinect_DepthNormalization(depthImage);
figure;
imagesc(depthImage);
figure;
imagesc(filledImage);
figure;
imshowpair(depthImage,filledImage,'montage');

MATLAB Release
MATLAB 8.3 (R2014a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video