« Kinect » : différence entre les versions

De Wikilipo
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 79 : Ligne 79 :
Repère le point le plus proche de la Kinect, et le marque d'un rond rouge, plus ou moins gros selon la distance.
Repère le point le plus proche de la Kinect, et le marque d'un rond rouge, plus ou moins gros selon la distance.
<pre>
<pre>
import librarytests.*;
import org.openkinect.*;
import org.openkinect.processing.*;
Kinect kinect;
void setup() {
  size(640, 480);
kinect = new Kinect(this);
kinect.start();
kinect.enableDepth(true);
}
void draw() {
  int closestValue = 4096;
  int closestIndex = -1;
 
  // draw the raw image
  int[] rawDepth = kinect.getRawDepth();
 
  for (int i=0; i <640*480; i++) {
    if (rawDepth[i] > 0 && rawDepth[i] < closestValue) {
      closestValue = rawDepth[i];
    closestIndex = i;
    }
  }
 
  image(kinect.getDepthImage(),0,0,640,480);
 
  if (closestIndex > -1) {
    fill(255,0,0);
    ellipse(closestIndex % 640, closestIndex / 640, closestValue*0.1, closestValue*0.1);
 
  }
}
void stop() {
kinect.quit();
super.stop();
}
</pre>
</pre>


=Documentation=
=Documentation=
* Page de [http://www.shiffman.net/p5/kinect/ documentation de Daniel Shiffman]
* Page de [http://www.shiffman.net/p5/kinect/ documentation de Daniel Shiffman]

Version du 7 juillet 2011 à 17:16

Procédure d'installation de la Kinect Sous MacOS



Installation des librairies sous Processing

  • Aller sur ce lien.
  • Télécharger openkinect.zip
  • Le décompresser
  • Copier le répertoire dans Documents/Processing/librairies

Quelques exemples, fournis par Douglas Edric Stanley (Mapping 2011)

Mettre ces sketches dans un répertoire sous Documents/Processing/ Jouer ces sketches via File/Sketchbook/votreRepertoireTest

Skeleton

Ce sketch fait rien... sauf initialiser: montre la structure de base d'un programme Processing utilisant la Kinect.

import librarytests.*;
import org.openkinect.*;
import org.openkinect.processing.*;

Kinect kinect;

void setup() {
 kinect = new Kinect(this);
 kinect.start();
}

void draw() {

}


void stop() {
 kinect.quit();
 super.stop(); 
}

Varicelle

Fait deux choses:

  1. capte et renvoie l'image Kinect
  2. contrôle l'angle vertical de la kinect avec la souris (tilt)

NB: il s'agit aussi de tester la caméra infra-rouge. Tester avec une télécommande de télé.

import librarytests.*;
import org.openkinect.*;
import org.openkinect.processing.*;

Kinect kinect;

void setup() {
  size(640,480);  //standard kinect screen
 kinect = new Kinect(this);
 kinect.start();
 kinect.enableIR(true);
}

void draw() {
  PImage img = kinect.getVideoImage();
  image(img,0,0);
}

void mouseMoved() {
 float t = map(mouseY, 0,height,30,-30);
 println(t);
 kinect.tilt(t);
}

void stop() {
 kinect.quit();
 super.stop(); 
}

Closest

Repère le point le plus proche de la Kinect, et le marque d'un rond rouge, plus ou moins gros selon la distance.

import librarytests.*;
import org.openkinect.*;
import org.openkinect.processing.*;

Kinect kinect;

void setup() {
  size(640, 480);
 kinect = new Kinect(this);
 kinect.start();
 kinect.enableDepth(true);
}

void draw() {
  int closestValue = 4096;
  int closestIndex = -1;
  
  // draw the raw image
  int[] rawDepth = kinect.getRawDepth();
  
  for (int i=0; i <640*480; i++) {
    if (rawDepth[i] > 0 && rawDepth[i] < closestValue) {
      closestValue = rawDepth[i];
     closestIndex = i; 
    }
  }
  
  image(kinect.getDepthImage(),0,0,640,480);
  
  if (closestIndex > -1) {
    fill(255,0,0);
    ellipse(closestIndex % 640, closestIndex / 640, closestValue*0.1, closestValue*0.1);
  
  }
}

void stop() {
 kinect.quit();
 super.stop(); 
}

Documentation