Java4Kinect检索三维关节坐标
我一直在努力实现一项功能,允许我使用XBox 360检测到的人类手势驾驶机器人。目前,我正在尝试读取并打印右手的X坐标,尽管能够检测到骨骼,但该坐标仅返回0.0。我还尝试用其他关节常数替换HAND_RIGHT,但没有效果 这是我的myKinect类,它从Kinect读取值:Java4Kinect检索三维关节坐标,java,arrays,coordinates,kinect,kinect-sdk,Java,Arrays,Coordinates,Kinect,Kinect Sdk,我一直在努力实现一项功能,允许我使用XBox 360检测到的人类手势驾驶机器人。目前,我正在尝试读取并打印右手的X坐标,尽管能够检测到骨骼,但该坐标仅返回0.0。我还尝试用其他关节常数替换HAND_RIGHT,但没有效果 这是我的myKinect类,它从Kinect读取值: package printTest; import edu.ufl.digitalworlds.j4k.J4KSDK; import edu.ufl.digitalworlds.j4k.Skeleton; public
package printTest;
import edu.ufl.digitalworlds.j4k.J4KSDK;
import edu.ufl.digitalworlds.j4k.Skeleton;
public class myKinect extends J4KSDK{
int maxSkeletons = getMaxNumberOfSkeletons();
Skeleton skeleton;
@Override
public void onColorFrameEvent(byte[] arg0) {
}
@Override
public void onDepthFrameEvent(short[] arg0, byte[] arg1, float[] arg2, float[] arg3) {
}
@Override
public void onSkeletonFrameEvent(boolean[] flags, float[] positions, float[] orientations, byte[] state) {
System.out.print(".");
for (int i = 0; i < maxSkeletons; i++) {
skeleton = Skeleton.getSkeleton(i, flags, positions, orientations, state, this);
if (flags[i]){
skeleton.get3DJoint(Skeleton.HAND_RIGHT);
}
}
}
}
包装印刷测试;
导入edu.ufl.digitalworlds.j4k.J4KSDK;
导入edu.ufl.digitalworlds.j4k.Skeleton;
公共类myKinect扩展了J4KSDK{
int maxSkeletons=getMaxNumberOfSkeletons();
骨骼;
@凌驾
公共无效onColorFrameEvent(字节[]arg0){
}
@凌驾
public void onDepthFrameEvent(短[]arg0,字节[]arg1,浮点[]arg2,浮点[]arg3){
}
@凌驾
public void onskletonframeEvent(布尔[]标志、浮点[]位置、浮点[]方向、字节[]状态){
系统输出打印(“.”);
对于(int i=0;i
这是我的KinectPrint类,它打印出坐标值:
package printTest;
import edu.ufl.digitalworlds.j4k.J4KSDK;
import edu.ufl.digitalworlds.j4k.Skeleton;
public class KinectPrint {
public static void main(String[] args) {
myKinect kinect = new myKinect();
kinect.start(J4KSDK.SKELETON);
kinect.setSeatedSkeletonTracking(true);
System.out.println("Initializing...");
try {
Thread.sleep(5000);
} catch(InterruptedException e) {}
float handX;
for(int i = 0; i < 10; i++) {
handX = kinect.skeleton.get3DJointX(Skeleton.HAND_RIGHT);
System.out.println(handX);
try {
Thread.sleep(1000);
} catch(InterruptedException e) {}
}
kinect.stop();
System.out.println("Completed!");
}
}
包装印刷测试;
导入edu.ufl.digitalworlds.j4k.J4KSDK;
导入edu.ufl.digitalworlds.j4k.Skeleton;
公共类KinectPrint{
公共静态void main(字符串[]args){
myKinect kinect=新的myKinect();
开始(J4KSDK.SKELETON);
kinect.setSeatedSkeletonTracking(真);
System.out.println(“初始化…”);
试一试{
睡眠(5000);
}捕获(中断异常e){}
浮动手柄;
对于(int i=0;i<10;i++){
handX=kinect.skeleton.get3DJointX(skeleton.HAND\u RIGHT);
系统输出打印LN(handX);
试一试{
睡眠(1000);
}捕获(中断异常e){}
}
kinect.stop();
System.out.println(“已完成!”);
}
}
其电流输出为:
正在初始化。。。
..........................................................................................................0.0
..............................0.0
.............................0.0
............................0.0
..............................0.0
..............................0.0
..............................0.0
..............................0.0
..............................0.0
..............................0.0
已完成代码>不链接项目。请用相关代码和您面临的问题更新问题。仅更新问题。谢谢不要链接项目。请用相关代码和您面临的问题更新问题。仅更新问题。谢谢