« Kinect » : différence entre les versions

De Wikilipo
Aller à la navigation Aller à la recherche
Ligne 43 : Ligne 43 :
Fait deux choses:
Fait deux choses:
# capte et renvoie l'image formé par la Kinect
# capte et renvoie l'image formé par la Kinect
# contrôle l'angle vertical de la kinect par l'intermédiaire de la souris (kinect.tilt)
# contrôle l'orientation angulaire verticale de la kinect par l'intermédiaire de la souris (kinect.tilt)
NB: il s'agit aussi de tester la caméra infrarouge. Essayez avec une télécommande de télé ou une <em>led</em> infrarouge quelconque
NB: il s'agit aussi de tester la caméra infrarouge. Essayez avec une télécommande de télé ou une <em>led</em> infrarouge quelconque
<pre>
<pre>

Version du 8 juillet 2011 à 22:08

Procédure d'installation de la Kinect Sous MacOS



Installation des librairies en Processing sous macos x

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

Quelques exemples, empruntés à Douglas E. Stanley (Mapping 2011 & HEAD, Genève)

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

Skeleton

Ce sketch ne fait rien... sauf initialiser l'espace de travail; il 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 formé par la Kinect
  2. contrôle l'orientation angulaire verticale de la kinect par l'intermédiaire de la souris (kinect.tilt)

NB: il s'agit aussi de tester la caméra infrarouge. Essayez avec une télécommande de télé ou une led infrarouge quelconque

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