Hallo an alle,
ich habe folgendes Projekt momentan am Laufen.
Ich würde gerne ein 4 gewinnt programmieren, dass man über die Microsoft Kinect steuern kann.
1. Frage: Gibt es hier jemandem im Forum der schon auf dem Gebiet Erfahrungen gemacht hat?
2. Frage: Ich habe die Kinect unter Eclipse zum Laufen gebracht und meine erstes Programm geschrieben!
Dieses Programm projeziert einen Punkt auf meine rechte Hand!
[JAVA=42]
import processing.core.PApplet;
import processing.core.PImage;
import processing.core.PVector;
import SimpleOpenNI.IntVector;
import SimpleOpenNI.SimpleOpenNI;
import org.OpenNI.*;
public class SkeletSuche extends PApplet {
SimpleOpenNI kinect;
public void setup()
{
size(640,480);
kinect = new SimpleOpenNI(this);
kinect.enableDepth();
kinect.enableUser(SimpleOpenNI.SKEL_PROFILE_ALL);
}
public void draw()
{
kinect.update();
PImage depth = kinect.depthImage();
image(depth, 0, 0);
IntVector userList = new IntVector();
kinect.getUsers(userList);
if (userList.size()> 0)
{
int userId = userList.get(0);
if (kinect.isTrackingSkeleton(userId))
{
PVector righthand = new PVector();
float confidence = kinect.getJointPositionSkeleton(userId, SimpleOpenNI.SKEL_LEFT_HAND, righthand);
PVector convertedRightHand = new PVector();
kinect.convertRealWorldToProjective(righthand, convertedRightHand);
fill(255,0,0);
ellipse(convertedRightHand.x, convertedRightHand.y, 10, 10);
}
}
}
public void onNewUser (int userID)
{
System.out.println("Start pose detection");
kinect.startPoseDetection("Psi", userID);
}
public void onEndCalibration (int userId, boolean successful)
{
if(successful)
{
System.out.println(" User callibrated!");
kinect.startTrackingSkeleton(userId);
}
else
{
System.out.println(" failed to calibrated");
kinect.startPoseDetection("Psi", userId);
}
}
public void onStartPose(String pose, int userId)
{
System.out.println("Started pose for user");
kinect.stopPoseDetection(userId);
kinect.requestCalibrationSkeleton(userId, true);
}
}
[/code]
Meine Frage wäre, wie ich jetzt der JVM sagen kann, dass nicht mehr die Information von der Maus hergezogen werden sollen, sondern nur noch die von der Kinect. D.h. Der Mauszeiger soll über die Kinect gesteuert werden.
3. Frage: Ich bräuchte für diese Aktion einen Listener. Gibt es so was???
Ich weiß, dass meine Fragen sehr speziell sind, aber ein Versuch ist es wert.
Mit freundlichen Grüßen,
Adriano-celentano
ich habe folgendes Projekt momentan am Laufen.
Ich würde gerne ein 4 gewinnt programmieren, dass man über die Microsoft Kinect steuern kann.
1. Frage: Gibt es hier jemandem im Forum der schon auf dem Gebiet Erfahrungen gemacht hat?
2. Frage: Ich habe die Kinect unter Eclipse zum Laufen gebracht und meine erstes Programm geschrieben!
Dieses Programm projeziert einen Punkt auf meine rechte Hand!
[JAVA=42]
import processing.core.PApplet;
import processing.core.PImage;
import processing.core.PVector;
import SimpleOpenNI.IntVector;
import SimpleOpenNI.SimpleOpenNI;
import org.OpenNI.*;
public class SkeletSuche extends PApplet {
SimpleOpenNI kinect;
public void setup()
{
size(640,480);
kinect = new SimpleOpenNI(this);
kinect.enableDepth();
kinect.enableUser(SimpleOpenNI.SKEL_PROFILE_ALL);
}
public void draw()
{
kinect.update();
PImage depth = kinect.depthImage();
image(depth, 0, 0);
IntVector userList = new IntVector();
kinect.getUsers(userList);
if (userList.size()> 0)
{
int userId = userList.get(0);
if (kinect.isTrackingSkeleton(userId))
{
PVector righthand = new PVector();
float confidence = kinect.getJointPositionSkeleton(userId, SimpleOpenNI.SKEL_LEFT_HAND, righthand);
PVector convertedRightHand = new PVector();
kinect.convertRealWorldToProjective(righthand, convertedRightHand);
fill(255,0,0);
ellipse(convertedRightHand.x, convertedRightHand.y, 10, 10);
}
}
}
public void onNewUser (int userID)
{
System.out.println("Start pose detection");
kinect.startPoseDetection("Psi", userID);
}
public void onEndCalibration (int userId, boolean successful)
{
if(successful)
{
System.out.println(" User callibrated!");
kinect.startTrackingSkeleton(userId);
}
else
{
System.out.println(" failed to calibrated");
kinect.startPoseDetection("Psi", userId);
}
}
public void onStartPose(String pose, int userId)
{
System.out.println("Started pose for user");
kinect.stopPoseDetection(userId);
kinect.requestCalibrationSkeleton(userId, true);
}
}
[/code]
Meine Frage wäre, wie ich jetzt der JVM sagen kann, dass nicht mehr die Information von der Maus hergezogen werden sollen, sondern nur noch die von der Kinect. D.h. Der Mauszeiger soll über die Kinect gesteuert werden.
3. Frage: Ich bräuchte für diese Aktion einen Listener. Gibt es so was???
Ich weiß, dass meine Fragen sehr speziell sind, aber ein Versuch ist es wert.
Mit freundlichen Grüßen,
Adriano-celentano