4

I have CurtinFaces Dataset that captured by Kinect. I want to apply LBP and 3DLBP on a depth image(same as this work). LBP and 3DLBP work on 8 bits depth images (see Fig. 2 in the paper) but Kinect depth images are stored in double format (16 bits). Here is my depth+RGB image. I've scaled the depth values between 500..1500 to 0..255 to get a 8 bits depth image. Here is the code used for scaling:

load('01.mat');
I = reshape(d(:,3),[480 640]);
a = 500; b = 1500; %determined by histogram
I(I > b) = NaN;
I(I < a) = NaN;
I = im2uint8(mat2gray(I));
I = imcomplement(I);

Here is my result: enter image description here

I've scaled all depth images, then applied LBP on them. After face classification, the result was unusual (35%)! So, I want to know how to scale Kinect depth images to 8 bits, so that It be proper for applying LBP on it?

Thanks in advance.

Nasi
  • 81
  • 1
  • 9

1 Answers1

0

Your problem is in the linear scaling. What you did is simply a histogram equalisation. I recommend you derive the cumulative density function of the depth image and squeeze it while preserving the growth curve then perform histogram matching. This way it should give you a realistic mapping.

cmoxiv
  • 46
  • 5