Kinect 2: Depth Tracking + Blob Detection

import controlP5.*;
import KinectPV2.*;
import blobDetection.*;

KinectPV2 kinect;

ControlP5 cp5;

int KmaxD = 4000; // 4m
int KminD = 100;  //  0m

int MoveX; 
int MoveY;

int R1X; 
int R1Y;
int R2X; 
int R2Y;
int R3X; 
int R3Y;
int R4X; 
int R4Y;


float Scale_Depth = 2.0;

PGraphics pg;
PImage img;

void setup() {
  size(1600, 1000);
  
  pg = createGraphics(512, 424);
  
  cp5 = new ControlP5(this);
  
  kinect = new KinectPV2(this);
  kinect.enableDepthImg(true);
  kinect.enablePointCloud(true);
  kinect.enableColorImg(true);
  
  kinect.init();
  
  cp5.addSlider("KminD")
    .setPosition(40,40)
    .setRange(0,2000)
    .setSize(200,20)
    .setValue(200)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
     cp5.addSlider("KmaxD")
    .setPosition(40,80)
    .setRange(0,2000)
    .setSize(200,20)
    .setValue(1250)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
    cp5.addSlider("Scale_Depth")
    .setPosition(40,120)
    .setRange(0,10)
    .setSize(200,20)
    .setValue(2)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
   cp5.addSlider("MoveX")
    .setPosition(40,160)
    .setRange(-400,400)
    .setSize(200,20)
    .setValue(0)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
   cp5.addSlider("MoveY")
    .setPosition(40,200)
    .setRange(-400,400)
    .setSize(200,20)
    .setValue(0)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
  cp5.addSlider("R1X")
    .setPosition(300,40)
    .setRange(0,600)
    .setSize(200,20)
    .setValue(100)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
   cp5.addSlider("R1Y")
    .setPosition(300,80)
    .setRange(0,600)
    .setSize(200,20)
    .setValue(100)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
  cp5.addSlider("R2X")
    .setPosition(560,40)
    .setRange(0,600)
    .setSize(200,20)
    .setValue(100)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
   cp5.addSlider("R2Y")
    .setPosition(560,80)
    .setRange(0,600)
    .setSize(200,20)
    .setValue(100)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
  cp5.addSlider("R3X")
    .setPosition(820,40)
    .setRange(0,600)
    .setSize(200,20)
    .setValue(100)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
   cp5.addSlider("R3Y")
    .setPosition(820,80)
    .setRange(0,600)
    .setSize(200,20)
    .setValue(100)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
  cp5.addSlider("R4X")
    .setPosition(1080,40)
    .setRange(0,600)
    .setSize(200,20)
    .setValue(100)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
   cp5.addSlider("R4Y")
    .setPosition(1080,80)
    .setRange(0,600)
    .setSize(200,20)
    .setValue(100)
    .setColorForeground(color(20,200,200))
     .setColorLabel(color(255))
     .setColorBackground(color(70,70,70))
     .setColorValue(color(0,0,0))
     .setColorActive(color(0,255,255))
  ;
  
}

void draw() {
  background(40);
  
  kinect.setLowThresholdPC(KminD);
  kinect.setHighThresholdPC(KmaxD);
  
  img = kinect.getPointCloudDepthImage();
  
  float sc = Scale_Depth;
  pushMatrix();
  translate(width/2,height/2);
  pg.beginDraw();
  pg.background(100);
  pg.image(img,0,0);
  pg.filter(INVERT);
  pg.fill(0);
  pg.rect(0,0,R1X,R1Y);
  pg.rect(0,0,R2X,R2Y);
  pg.rect(0,424,R3X,-R3Y);
  pg.rect(512,0,-R4X,R4Y);
  pg.endDraw();
  scale(sc);
  image(pg,-512/2+MoveX,-424/2+MoveY);
  popMatrix();
  
}