« Kinect » : différence entre les versions
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 à 15: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:
- capte et renvoie l'image Kinect
- 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
- Page de documentation de Daniel Shiffman