Interactive Mosaic with Processing

I am currently working on creating a live mosaic mirror in processing with the kinect4WinSDK (Kinect X-box camera). Does anybody have experience working with the kinect or creating mosaic images in processing using a live video feed?

Can you say more about what you mean? Do you mean like a checkerboard, or are there particular geometric shapes / patterns you have in mind?

Why kinect? Are you making a color image, or will the contents of the mirror have something to do with a depth camera or pose detection?

If what you want it to pixelate a video stream, this might be of interest:

You might also be interested in:

1 Like

We are currently using the kinect for possible depth detection. Our current code pixelates the video stream from the kinect. We are now interested in capturing a photo from the live video stream when a button is pressed so the user can save specific images. Moving forward it would also be ideal to use the depth feature on the kinect to only pixelate the object in the foreground. Any ideas on how to capture an image from a live video feed in processing using kinect? Or possibly use depth detection to only pixelate a specified part of a video stream?

Our code so far adapted from Daniel Shiffman tutorial:

import kinect4WinSDK.Kinect;
import kinect4WinSDK.SkeletonData;

Kinect kinect;
ArrayList <SkeletonData> bodies;
PImage obama; 
PImage smaller; 

int scl = 16; 
int w, h; 
void setup() {
  size(600, 749);
  kinect = new Kinect(this);
  obama = kinect.GetImage();
  w = obama.width/scl; 
  h = obama.height/scl; 
  smaller = createImage(w,h,RGB); 
  smaller.copy(obama, 0, 0, obama.width, obama.height, 0, 0, w, h);
  
}

void draw() {
  obama = kinect.GetImage();
  smaller.copy(obama, 0, 0, obama.width, obama.height, 0, 0, w, h);
  background(0); 
  smaller.loadPixels();
  for (int x =0; x < w; x++) {
    for (int y = 0; y < h; y++) {
      int index = x + y * w; 
      color c = smaller.pixels[index]; 
      fill(c); 
      noStroke(); 
      rect(x*scl, y*scl, scl, scl); 
    }
  }
  //image(obama,0,0);
  //image(smaller, 0, 0); 
  

}